2014-02-21 49 views
-1

我在页面上有两个可排序的无序列表,它们通过webservice调用填充。Jquery-ui - 合并Sortable与Droppable - droppable函数在排序时触发

其中一个列表由另一个列表填充,通过jQuery-UI可拖放/放置。

当一个项目被放到第二个列表中时,调用可放置函数,它将更新数据库。这工作正常。

但是,我也希望这个列表是可排序的。当我对列表排序时,Sortable和Droppable函数都会被调用,而我只希望排序。

如何排序第二个列表并且不能调用droppable?

代码:

$("#MyDiv1 li").draggable({ 
    connectToSortable: "#MyDiv2", 
    revert: "invalid", 
    helper: function() { 
     //other stuff here 
    } 
}).disableSelection(); 


$("#MyDiv2").sortable({ 
    connectWith: "ul", 
    revert: true, 
    update: function (event, ui) { 
     //update new sort through webservice call 
    } 
}).droppable({ 
      tolerance: 'pointer', 
      drop: function (event, ui) { 
       //add dropped item through web service call 
      } 
     }) 
+0

请提供足够的代码来重现问题,比如'html',CSS或最小演示如[jsfiddle](http://jsfiddle.net) –

+0

你下来投了5个月大的问题,这是在评论中回答,因为没有与jQuery代码一起的HTML?我的问题的第一行指出了html中的内容,提供的代码对于了解jquery知道发生了什么的人来说已经足够了。另外,你可能想在你自己的问题中做同样的事情,因为许多人不包含确切的相关html或者某人可以复制和粘贴的jsfiddle。 – AaronS

回答

0

之所以能够四处找工作,但我敢肯定有一个更好的办法。

下的下拉功能,我添加了一个检查,以父ID以确保它不是MyDiv2

var ParentID = ui.draggable.context.parentNode.id; 

    if (ParentID != "MyDiv2") { 

    //drop code 
    }