2013-12-14 38 views
1

我一直在試圖看看爲什麼某些情況下,某些jQuery .sortable()不會啓用任何拖放事件 - 在某個jQuery對話框中,我有一個可排序的元素,我在調試時確認該元素存在($('theelement')是長度爲1,在致電$('theelement').sortable()之前)。在什麼情況下,jQuery可排序失敗?

我使用Chrome的檢查器驗證事件是否存在,我看不出有什麼理由不會執行完全相同的代碼,這個代碼在另一個jQuery對話框中工作,其中允許拖放重新排序。我已經刪除了容器的類,以使其類似於其工作的容器,以防像jQuery('.something theelement').mouseup(function(){return false})之類的事情發生。

我還通過改變排序爲

<ul target element> 
    <li>test</li> 
    <li>test</li> 
</ul> 

這樣簡單的事情,並呼籲jquery(target element).sortable()所以它不應該是一些複雜的CSS或DOM問題導致這簡化了代碼。

除了調試通過縮小jQuery-ui源代碼的每一行的每一步之外,還有其他什麼,以找到此問題的來源?

+0

只是出於好奇,如果你將另一個像.draggable()這樣的UI方法附加到目標元素,它是否工作? –

回答

0

奇怪的是,draggable()確實有效。因此,在再次添加可排序之前,請刪除jQuery(element).data('uiSortable','')的功能。在jquery輸入中添加':visible'還可以防止在顯示元素之前調用該元素的整個問題,這會阻止它繼續工作。

相關問題