在什么情况下jQuery可排序无声地失败?

时间:2013-12-14 05:43:29

标签: javascript jquery jquery-ui-sortable jquery-1.10

我一直试图了解为什么某个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源代码的每一行之外,还有什么方法可以找到这个问题的根源吗?

1 个答案:

答案 0 :(得分:0)

奇怪的是,draggable()确实有效。在再次添加sortable之前,使用jQuery(element).data('uiSortable','')删除函数也是如此。在jquery输入中添加':visible'也可以防止在显示元素之前以某种方式破坏元素的整个问题,这会阻止它永远工作。