创建在元素出现后触发的函数

时间:2012-03-09 19:57:38

标签: jquery dom

我在jQuery中使用.append创建一个元素。我有一个函数,我想在元素存在时执行。

我发现在运行append命令之后,该元素不存在。那么如何让它在它存在的情况下执行呢?

1 个答案:

答案 0 :(得分:2)

您可以绑定到DOMNodeInserted事件,但请注意,当您执行此操作时,您将失去对IE8及更旧版本的支持:

$(document).on('DOMNodeInserted', '.my-element-class', function () {
    $(this).css({ backgroundColor : 'red' });
});

以下是有关事件的MDN文档,请查看“变异事件”:https://developer.mozilla.org/en/DOM/DOM_event_reference

尽管在将它追加到DOM后,元素仍然存在,所以你可能试图错误地选择它:

$('body').append('<div>My New Div!</div>').children().last().css({ backgroundColor : 'red' });

这是一个演示,显示您可以在将元素添加到DOM后直接选择元素:http://jsfiddle.net/AH6RG/

请注意,此代码使用.append()添加新元素作为其添加到的容器的最后一个子元素的事实。因此,您可以通过选择容器的子项,然后选择最后一个子项来选择它。