2014-02-21 82 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 
    }