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

时间:2012-08-26 20:53:55

标签: javascript jquery dom

是否可以自动在新匹配的项目上调用jQuery函数?

例如,我有以下代码:

$(document).ready(function(){
    $('[draggable]').draggable();
});

这为每个与[draggable]匹配的元素添加了'draggable',但是当进一步推出具有属性'draggable'的新元素时,那些没有得到'draggable()'函数被调用。< / p>

是否有可能监控DOM或其​​他东西,并且在每个与选择器匹配的新dom项目上调用此方法?

我知道'click'事件就是这样的(jquery委托方法),但据我所知,在这种情况下我似乎无法使用它。

5 个答案:

答案 0 :(得分:4)

检查“Mutation Events”有一个名为DOMNodeInserted的事件可能对你有所帮助

<顺便说一下,检查:JQuery - use element with DOMNodeInserted

答案 1 :(得分:3)

您可以将我开发的arrive.js库用于完全相同的目的(它在内部使用MutationObserver)。用法:

document.arrive('[draggable]', function(){
    // 'this' refers to the newly created element
    $(this).draggable();
});

答案 2 :(得分:1)

对于jQuery, “。live()”,但我看到它被弃用了?! 不要从“.live()”转换到新的“.on()” - 当前的方法,但看看@自己,也许在他们的论坛中问... 这应该是正确的做法...

http://api.jquery.com/live/

答案 3 :(得分:1)

如果您运行的是jQuery 1.7或更高版本,则需要

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

答案 4 :(得分:0)

根据您使用的jQuery版本,请查看.on() method。如果我理解你在这里寻找什么,它应该满足你的需求。

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