9

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

例如我有以下代码:

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

这会为每个匹配 [draggable] 的元素添加 'draggable',但是当沿着道路进一步添加具有属性 'draggable' 的新元素时,那些不会调用 'draggable()' 函数。

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

我知道对于“单击”事件等(jquery 委托方法)有类似的东西,但据我所知,我似乎无法在这种情况下使用它。

4

5 回答 5

4

检查“突变事件”有一个名为 DOMNodeInserted 的事件也许它可以帮助你

顺便检查一下:JQuery - 使用带有 DOMNodeInserted 的元素

于 2012-08-26T21:00:59.533 回答
3

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

document.arrive('[draggable]', function(){
    // 'this' refers to the newly created element
    $(this).draggable();
});
于 2015-02-26T06:03:23.983 回答
1

jQuery有“.live()”,但我看到它已被弃用?目前不要从“.live()”转换到新的“.on()”-方法,但是看看@你自己,也许在他们的论坛上问......这应该是正确的方法。 ..

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

于 2012-08-26T20:57:28.137 回答
1

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

于 2012-08-26T21:30:49.287 回答
0

根据您使用的 jQuery 版本,查看.on() 方法。如果我了解您在这里寻找的内容,它应该可以满足您的需求。

以前版本的框架中的等价物是.live().

于 2012-08-26T20:58:15.463 回答