我一直试图了解为什么某个jQuery .sortable()
在某些情况下不会启用任何拖放事件 - 在某个jQuery对话框中我有一个可排序的,我确认该元素在调试时存在(在调用$('theelement')
之前,$('theelement').sortable()
的长度为1。
我使用Chrome的检查器验证了事件是否存在,我看不出任何原因它不会执行在另一个jQuery对话框中使用的完全相同的代码,其中允许拖放重新排序。我删除了容器的类,使其类似于它的工作类,以防jQuery('.something theelement').mouseup(function(){return false})
之类的东西被触发。
我还通过将sortable更改为
这样简单的东西来简化代码<ul target element>
<li>test</li>
<li>test</li>
</ul>
并且调用jquery(target element).sortable()
因此它不应该是导致此问题的一些复杂的css或dom问题。
除了调整缩小的jQuery-ui源代码的每一行之外,还有什么方法可以找到这个问题的根源吗?
答案 0 :(得分:0)
奇怪的是,draggable()确实有效。在再次添加sortable之前,使用jQuery(element).data('uiSortable','')
删除函数也是如此。在jquery输入中添加':visible'也可以防止在显示元素之前以某种方式破坏元素的整个问题,这会阻止它永远工作。