任何人都可以解释一下,.sortable
是否可以应用于将动态添加的未来jQuery对象,这意味着它不存在于当前 DOM中,就像弃用{ {1}}功能?感谢。
答案 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();
}
这适合我。