如何将jquery插件应用于新创建的元素。

3

我有一个第三方函数需要使用。要使用它,只需运行:

$('.myElements').thirdPartyFunction(options);

它运行得很好。但是,如果我动态添加一个类为.myElements的元素,如何让它在该元素上运行thirdPartyFunction?


3
"$('.otherElements').addClass('myElements').thirdPartyFunction(options);" 的意思是将类名为“otherElements”的元素添加“myElements”类,并调用第三方函数"thirdPartyFunction",同时传递参数“options”。请注意,没有捷径可走。 - Alon Eitan
那是手动运行它。我如何监听是否已添加了具有该类的元素,然后运行函数。 - KingKongFrog
简短的回答是,你无法这样做。你必须追踪那些类元素何时被添加,并再次运行第三方函数。你可以考虑使用MutationObserver来帮助解决这个问题,但这可能会带来更多麻烦,具体取决于你的代码规模。 - Heretic Monkey
哪个函数添加了新元素?这是您创建的函数吗?如果是,那么运行您的“thirdPartyFunction”就是正确的地方。 - Castro Roy
很不幸,这是我正在编写的一个 Chrome 扩展程序,它在第三方网站上运行。 - KingKongFrog
1个回答

1

如果您不担心性能问题,可以使用DOMNodeInserted

$(document).bind("DOMNodeInserted"), function(event){
      $(event.target).find(".myElements").addBack(".myElements").thirdPartyFunction();
}

虽然它的性能不是很好,所以您可能希望寻找其他替代方案。
其他选项:DOMNodeInserted的替代方案

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接