【问题标题】:jQuery Ui sortable can`t drag li elements in cloned uljQuery Ui sortable 无法在克隆的 ul 中拖动 li 元素
【发布时间】:2013-03-19 10:50:37
【问题描述】:

我对 jQuery 可排序列表有疑问。我有两个 ul 列表。这两个列表是可排序的(完整的 ul 集),并且 li 孩子也是可排序的。因此,您可以对完整列表位置进行排序,并且可以对 li 位置进行排序并将 li 元素从一个列表拖动到另一个列表。

使用每个列表旁边的按钮,我可以克隆一个完整的 ul 列表。因此我使用 clone(true,true) 函数。我使用真正的参数,因为我在按钮上获得了事件,并且我希望将它们应用于克隆。我还希望将可排序功能应用于克隆。

问题:

++++++++++++++++++++++++++++++++++++++++

当我只使用clone() 克隆元素时:

你不能将 li 元素从 ul>-clone 拖到另一个列表中并且 您不能使用克隆按钮(按钮 操作丢失)。

当我使用clone(true)clone(true,true) 克隆元素时:

您可以将 li-elements 从 ul-clone 拖动到另一个列表,但您不能将 li-element 从其他列表拖动到 ul-clone。

你可以在这里试试:

http://jsfiddle.net/uKEJL/133/

有什么想法吗?

-Thx Tobi-

【问题讨论】:

    标签: jquery clone jquery-ui-sortable


    【解决方案1】:

    您的问题与绑定有关。事件回调绑定到当前小部件对象。比较

    https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.mouse.js#L31-L41

    如果克隆列表,jQuery 会正确触发事件,但回调绑定到原始列表。

    您必须在每个克隆上初始化 sortable。

    【讨论】:

    • 嗨,如何将可排序函数直接绑定到每个克隆?我查看了您链接页面上的鼠标代码,但我不确定,如何将其转移到克隆?
    • 正如我所说,只需调用 clone.sortable(options)。将事件传输到克隆将不起作用。您必须创建新事件。
    • 感谢您的回答,但是当我在克隆上使用 sortable 时,例如: cloneHdl.sortable({ connectWith: ".sconnect" }).disableSelection();它不起作用:jsfiddle.net/6fsWh/17
    • 它有效。你在克隆的错误部分调用它jsfiddle.net/weqYs
    猜你喜欢
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多