1

我一直在尝试了解为什么某个 jQuery.sortable()在某些情况下不会启用任何拖放事件 - 在某个 jQuery 对话框中我有一个可排序的,我确认该元素在调试时存在($('theelement')长度为 1,就在调用之前$('theelement').sortable()) .

我使用 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源代码的每一行调试每一步之外,还有什么其他的方法可以找到这个问题的根源吗?

4

1 回答 1

0

奇怪的是,draggable() 确实有效。jQuery(element).data('uiSortable','')在再次添加可排序之前删除该功能也是如此。在 jquery 输入中添加 ':visible' 还可以防止在显示之前调用该元素时以某种方式破坏元素的整个问题,这阻止了它的工作。

于 2013-12-14T07:23:00.217 回答