获取droppable以接受多个对象并触发不同的功能

时间:2013-12-06 20:43:28

标签: jquery function if-statement draggable droppable

我需要一些帮助,让droppable接受多个项目(5 div),并根据丢弃的div,具有不同的功能。我尝试使用if语句无济于事,除非我错误地使用它们。对jquery来说很新。这是我的droppable函数的一个例子:

   $("#target1").droppable({
    accept: "#drag1",
        tolerance: 'touch',               
         drop: function() {                 
     droptrigger++
    $("#finish1").fadeTo( "fast" ,1)
    $("#drag1").fadeTo( "fast" ,0)
        fadeoutAll()        
    $("#drag1text").fadeTo( "fast" ,1)
            }

    });

如果您能提供帮助,请告诉我们!

1 个答案:

答案 0 :(得分:0)

accept: "#drag1"使得可放置区域只接受id为“drag1”的对象。你要放弃的其他东西将不被接受。我假设你没有5个不同的div具有相同的id(我希望你没有)。这不是世界上最漂亮的javascript,但是我想保持它基本,并且不能完全确定你正在放弃的操作之间的差异。

仅将.draggable应用于您想要成为毒品的项目,如果您确实需要重新添加accept:,请根据应用于您的5个项目的唯一课程进行操作。您可以将您的droppable与以下

类似
$('#target1').droppable({
  tolerance: 'touch',
  drop: function (ev, ui) {
    //gets html id of dropped item, could pass directly to function
    var droppedItemId = ui.draggable.attr('id');
    runSomeStuff(droppedItemId);
  }
});

function runSomeStuff(itemId)
{
  switch(itemId)    
  {
    case 'SomeSpecialId1':
        //do some stuff here
        break;
    case 'SomeSpecialId2':
        //do some other stuff here
        break;
    default:
        //do nothing if it isn't a special id or undefined
        break;
  }
}