我在jQuery中知道,只要元素出现,就会有一个函数live()来控制事件。我只想在它出现时立即对元素做一些事情。我尝试将元素怀疑为“加载”事件,但它不起作用。你是怎么做到的?
答案 0 :(得分:1)
您无法对所有元素使用加载。只:Img Body Iframe。
你不能通过直播听取我提到的其他元素的加载事件。
你可以做什么 - 当你把它们添加到页面时 - 然后你知道它何时发生,然后你可以调用你的功能。
答案 1 :(得分:1)
如果您控制创建和追加元素的代码,您可以trigger自定义事件并稍后在处理程序中处理它。
$('#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`...
})