【问题标题】:Get notification when DOM-Element is added [duplicate]添加DOM元素时获取通知[重复]
【发布时间】:2013-01-16 18:07:36
【问题描述】:

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

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

<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时调用函数?

【问题讨论】:

标签: javascript html ajax dom


【解决方案1】:

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

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

【讨论】:

  • 不适用于 IE7 + 8 但仍然可以。效果很好:) 谢谢
猜你喜欢
  • 1970-01-01
  • 2014-03-10
  • 2018-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2014-01-27
  • 1970-01-01
相关资源
最近更新 更多