4

可能重复:
如何检测何时在 jquery 的文档中添加了新元素?

我有一个普通 ul 元素中的评论列表。加载页面时,我使用类似的东西(系统基于模板)

<li id="someId">Some Content</li>
<script>doStuffWithLi('someId');</script>

因此,如果页面被加载并且有一些 li,每个都基于模板,那么每个 li 都有这个块。

现在人们可以发布新评论,模板和内容再次加载到页面中 - 但这次脚本没有执行。我猜想一般文件准备好后加载的js没有被执行,那些文件被加载了?

不幸的是,没有像$('li').live('ready', function() {});. 我尝试使用 livequery 插件,例如$('li').livequery(function() {//DO STUFF});- 但这也不起作用。我不能简单地添加对元素创建的调用,因为我无法影响添加注释的函数。

是否可以在添加另一个 li 时调用函数?

4

1 回答 1

3

你可以使用事件DOMSubtreeModified。将此事件分配给您的 lis 的父级,如果有新的 li,则检查该事件是否被触发。在这种情况下,您为该 li 分配一个新的处理程序。

$("#li_parent").bind("DOMSubtreeModified", function() {
    alert("possibly a li has been inserted");
    // do your magic here
});
于 2013-02-01T12:25:40.543 回答