2

谁能解释一下是否.sortable可以应用于将动态添加的未来 jQuery 对象,这意味着它在当前DOM 中不存在,就像不推荐使用的.live函数一样?谢谢。

4

2 回答 2

5

简而言之:没有。

请注意以下几点:.live自 jQuery 1.7 起已被弃用,并在 jQuery 1.9 中被删除。该功能已被该.on方法移动/替换。此方法只能检测事件处理程序,例如clicketc..sortable不是事件处理程序,所以这不起作用。

您唯一能做的就是.sortable在创建元素后调用该方法(来自 jQuery UI)。

于 2013-03-14T08:26:43.660 回答
0

在 2018 年回答,您可以通过在将新元素添加到 dom 后初始化可排序来实现这一点。在我的例子中,我正在开发一个表单布局插件,可以在其中添加列和字段并需要对它们进行排序。所以在创建(动态)一个新列之后,我重新应用我已经变成一个函数的代码:

function g2f_reload_sortable() {
    // reapply sortable to new items
    $('#g2f-form-fields div[class^="col"]').sortable({
        placeholder: "ui-state-highlight",
        forcePlaceholderSize: true,
        connectWith: "#g2f-form-fields div[class^='col']",
        handle: ".g2f-field-move"
    });
    $('#g2f-form-fields div[class^="col"]').disableSelection();
}

这对我有用。

于 2018-01-24T16:56:16.587 回答