Javascript 在新dom元素上自动调用jQuery函数

Javascript 在新dom元素上自动调用jQuery函数,javascript,jquery,dom,Javascript,Jquery,Dom,是否可以对新匹配的项自动调用jQuery函数 例如,我有以下代码: $(document).ready(function(){ $('[draggable]').draggable(); }); 这会将“DragTable”添加到与[DragTable]匹配的每个元素中,但是当沿着这条路再添加属性为“DragTable”的新元素时,这些元素不会得到调用的“DragTable()”函数 是否可以监视DOM或其他内容,并对与选择器匹配的每个新DOM项调用此方法 我知道“click”事件和类

是否可以对新匹配的项自动调用jQuery函数

例如,我有以下代码:

$(document).ready(function(){
    $('[draggable]').draggable();
});
这会将“DragTable”添加到与[DragTable]匹配的每个元素中,但是当沿着这条路再添加属性为“DragTable”的新元素时,这些元素不会得到调用的“DragTable()”函数

是否可以监视DOM或其他内容,并对与选择器匹配的每个新DOM项调用此方法

我知道“click”事件和类似事件(jquery委托方法)有类似的功能,但据我所知,我似乎无法在这种情况下使用它。

jquery有“.live()”,但我发现它已被弃用了?! 目前还没有从“.live()”到新的“.on()”-方法的转换,但是看看@yourself,也许可以在他们的论坛上询问一下。。。 这应该是正确的方式做


根据您使用的jQuery版本,查看
.on()
。如果我知道你在这里找什么,它应该能满足你的需要

以前版本的框架中的等效项是
.live()

检查“”“有一个名为DOMNodeInserted的事件,它可能会帮助您

顺便说一下,选中:

是运行jQuery 1.7或更高版本时所需的。它将在元素添加到页面时运行,以及在调用它时已经存在的元素。如果您使用的是早期版本,请查看该方法,该方法已被弃用,但与添加的元素具有相同的功能。

您可以使用我为完全相同的目的开发的库(它在内部使用)。用法:


我认为()上的
.on()
可能会重复,因为这只用于将事件绑定到新的DOM元素,而不运行任何函数。MDN页面上的第一个子标题是“避免使用突变事件”。w3已经弃用了它们。性能不是很好,而且并非所有浏览器都支持它们。当然,最好手动添加这种行为,但如果完全需要,我看不到其他解决方案(变异观察员会很好,但他们还没有真正得到支持),这是支持它的浏览器的最佳解决方案,是的。否则,您将得到一些笨拙的结果,比如添加一个
appendDragable()
方法,并使用它来代替
.append()
(如果没有那么多其他方法来添加元素,这也不会太糟)。
.live()
(或者更新的
.delegate()
.on()
)允许您附加将为以后添加的元素运行的事件处理程序,但不允许您自动将类似
.draggable()
的方法应用于这些元素。
.on()
(或
.delegate()
.live()
)将允许您附加将为以后添加的元素运行的事件处理程序,但它不允许您自动将类似
.draggable()
的方法应用于这些元素。
.on()
(或更早的
.delegate()
或更旧的
。live()
)将附加一个事件处理程序,该程序将为以后添加的元素运行,但它不允许您自动应用类似
.draggable()的方法
添加到这些元素。
document.arrive('[draggable]', function(){
    // 'this' refers to the newly created element
    $(this).draggable();
});