在DOM初始加载后监听元素呈现

时间:2013-03-29 20:46:32

标签: javascript jquery dom dom-manipulation

无论如何都要监听加载后添加到DOM的元素吗?目前我有一堆使用DataTables的表,我有一些其他元素,我想操作时,如果我找到的元素类型被发现在页面上“出现”。看到我正在尝试做的只在加载时当前在页面上的元素上有效,但在加载之后不是这样,当前正在使用许多元素。

最终,我目前正在寻找一种避免回溯整个代码库的方法,只是在页面上找到某些内容但在加载后才会发生某些事情。

1 个答案:

答案 0 :(得分:2)

没有“添加到dom的元素”这种跨浏览器兼容的事件,并且通常不鼓励特定浏览器存在的事件,因为它们往往会导致比他们解决的问题更多的问题。

通常,DOM中不存在的元素的问题是它们错过了事件绑定。 jQuery有很棒的事件委托,可以用来将事件绑定到容器,这样当事件冒泡到容器时,回调就会在接收事件的元素的上下文中触发。

例如,您可以使用以下方法绑定事件:

$('a').click(doStuff);

但这不适用于任何新链接,而是可以使用以下内容:

$('#some-container').on('click', 'a', doStuff);

会拦截#some-container元素中所有链接上的所有点击事件,无论它们何时被添加到页面中。