【问题标题】:In what case does jQuery sortable fail silently?在什么情况下 jQuery sortable 会静默失败?
【发布时间】:2014-01-02 00:35:59
【问题描述】:

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

我通过 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源代码的每一行调试每一步,找到这个问题的根源吗?

【问题讨论】:

  • 只是出于好奇,如果您将另一个 ui 方法(如 .draggable())附加到目标元素,它会起作用吗?

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    相关资源
    最近更新 更多