2012-07-17 40 views
1

我想要做的是创建一个站点,将项目拖放到放置区域,并且一旦将特定的拖动项目调用拖放到在另一个特定div中滑动的功能。我无法弄清楚为什么我不能得到if --- else如果工作。我的目标是有一个干净的函数,看到哪个项目被拖/下降,这取决于放置项目我想要一个具体的“某事发生”,比如在一个页面滑动 这里是我的jQuery代码:如何找出哪个拖动的项目被丢弃

$(document).ready(function(){ 
var i; 
var banners = ('#banners'); 
var tryout = ('#try2'); 
var navItem = [banners, tryout]; 
var dropItem = (".nav"); 


// DRAGGABLE 
$(dropItem).draggable({ 

}); 

$("#dropArea").droppable({ 
    drop: function() { 

     if ("dragged Item " == banners){ 
      $(".panel").toggle("fast"); 
       $(this).toggleClass("active") 
     } 

     else if ("dragged Item " == tryout){ 
      // and so on... 
     } 
    } 

}); 

}); 

编辑加成这里就是我在这里现在例子www.diskrim.com/tryout $(掉物品开关DROPITEM).draggable({

}); 

$("#dropArea").droppable({ 
    drop: function(event, ui) { 

     if (ui.draggable = navItem[0]){ 
      alert("banners"); 

     } 
     else if (ui.draggable = navItem[1]){ 
      alert("just pop up"); 

     } 
     else{ 

     } 

    } 

}); 

}); 
+0

检查传递到拖放回调的参数。 – 2012-07-17 19:35:15

回答

1

参考jQuery UI Documentation

drop CA llback有两个参数:eventuiui.draggable是拖放到可投放区域的项目

+0

好的,这是有道理的。我认为我做的是正确的,但是我发现自己无法继续使用if ... else,如果...我不能得到其他的工作。如果你能提供帮助,这里就是例子。 www.diskrim.com/tryout – diskrim 2012-07-17 20:05:04

+0

@diskrim你在你的陈述中使用了一个“=”号,你要设置这个变量,因此第一个陈述总会被评估为真。使用“==”进行比较(或按位“===”)! – 2012-07-17 20:16:49

+0

我明白你的意思了。感谢您的输入,但是我注意到我的dropItem的ui.draggable使用了一个.nav类。所以我需要比较那个类nav的div id。如何正确地调用一个可拖动的attr。(“id”)..我试着这个没有运气: if($(this(ui.draggable).attr(“id”))== navItem [0] ){ 警报(“横幅”); ('id')'或可能'$(ui.draggable).attr('id')' – diskrim 2012-07-17 21:13:42

相关问题