如何在jQuery中出现元素时立即应用函数?

时间:2011-10-23 05:32:10

标签: jquery

我在jQuery中知道,只要元素出现,就会有一个函数live()来控制事件。我只想在它出现时立即对元素做一些事情。我尝试将元素怀疑为“加载”事件,但它不起作用。你是怎么做到的?

4 个答案:

答案 0 :(得分:1)

您无法对所有元素使用加载。只:Img Body Iframe。

你不能通过直播听取我提到的其他元素的加载事件。

你可以做什么 - 当你把它们添加到页面时 - 然后你知道它何时发生,然后你可以调用你的功能。

答案 1 :(得分:1)

如果您控制创建和追加元素的代码,您可以trigger自定义事件并稍后在处理程序中处理它。

Example

$('#add').click(function() {
    $('#container').append($('<div>Hello! I am a new div</div>')).trigger('div-added');
});

$('#container').bind('div-added', function() {
    alert('A div has been added');
});

答案 2 :(得分:0)

使用.delegate()http://api.jquery.com/delegate代替.live()

针对您的具体情况,请考虑livequery http://docs.jquery.com/Plugins/livequery

答案 3 :(得分:0)

您可以收听DOMNodeInserted。我知道它适用于Webkit和Firefox - 虽然我不知道IE。

它看起来像这样:

$('body').bind('DOMNodeInserted', function(evt) {
    var addedElement = evt.target;
    // do whatever with `addedElement`...
})