Javascript .sortable能否应用于动态添加的对象?

Javascript .sortable能否应用于动态添加的对象?,javascript,jquery,Javascript,Jquery,谁能解释一下.sortable是否可以应用于将来动态添加的jQuery对象,这意味着它在当前DOM中不存在,就像不推荐使用的.live函数一样?谢谢。简言之:不 请注意:自jQuery1.7以来已被弃用,并在jQuery1.9中删除。此功能已被方法移动/替换。此方法只能检测事件处理程序,如click等。sortable不是事件处理程序,因此无法工作 您唯一能做的就是在创建元素后从jQuery UI调用该方法。简言之:否 请注意:自jQuery1.7以来已被弃用,并在jQuery1.9中删除。此功

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

简言之:不

请注意:自jQuery1.7以来已被弃用,并在jQuery1.9中删除。此功能已被方法移动/替换。此方法只能检测事件处理程序,如click等。sortable不是事件处理程序,因此无法工作

您唯一能做的就是在创建元素后从jQuery UI调用该方法。

简言之:否

请注意:自jQuery1.7以来已被弃用,并在jQuery1.9中删除。此功能已被方法移动/替换。此方法只能检测事件处理程序,如click等。sortable不是事件处理程序,因此无法工作


您唯一能做的就是在创建元素后从jQuery UI调用该方法。

在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年回答这个问题时,您只需在将新元素添加到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();
}

这对我来说很有用。

你的意思是,它是否会无缘无故地使用根级别的文档来为所有以及任何现在和将来的事件进行委托,以使懒惰的程序员更容易地生活,而不是使用更接近事件目的的范围,逻辑上更符合事件的目的?嗯,我不知道。希望不会,否则它会像$.live那样被猛拉。如果有什么方法可以找到的话……看看sortable的刷新方法:在将动态项添加到sortable后需要调用它。大家好,请让我花更多时间检查api并做一些实验。谢谢。你的意思是,它会无偿地使用根级别的文档来委托所有以及任何现在和将来的事件,以使懒惰的程序员更容易地生活,而不是使用更接近事件目的、逻辑上更一致的范围吗?嗯,我不知道。希望不会,否则它会像$.live那样被猛拉。如果有什么方法可以找到的话……看看sortable的刷新方法:在将动态项添加到sortable后需要调用它。大家好,请让我花更多时间检查api并做一些实验。谢谢。好的,我知道了,这意味着我想要排序的元素必须提前存在。谢谢好的,我明白了,这意味着我想要排序的元素必须提前存在。谢谢