添加DOM-Element时获取通知

时间:2013-02-01 12:16:51

标签: javascript html ajax dom

  

可能重复:
  How can I detect when a new element has been added to the document in jquery?

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

$("#li_parent").bind("DOMSubtreeModified", function() {
    alert("possibly a li has been inserted");
    // do your magic here
});