可以.sortable适用于动态添加的对象吗?

时间:2013-03-14 08:20:34

标签: javascript jquery

任何人都可以解释一下,.sortable是否可以应用于将动态添加的未来jQuery对象,这意味着它不存在于当前 DOM中,就像弃用{ {1}}功能?感谢。

2 个答案:

答案 0 :(得分:3)

简而言之:否。

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

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

答案 1 :(得分:0)

在2018年回答,你可以通过在将新元素添加到dom之后初始化sortable来实现这一点。就我而言,我正在开发一个表单布局插件,其中一个会添加列和字段,需要对它们进行排序。因此,在创建(动态)新列之后,我重新应用我已转换为函数的代码:

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();
}

这适合我。