不使用超时,我想使用jQuery来检查即将生成的视频标记。当我们正在寻找视频标签时,它还不存在。
我可以使用window.load来等待整个窗口加载,然后调用回调函数:
window.load = function () {player = jQuery("#videoid"; }
但无论如何要“等待”,直到特定的视频标签插入/加载到正文然后执行回调函数?类似的东西:
jQuery("#videoid").bind('load', function() { player = jQuery("#videoid"); })
提前致谢
答案 0 :(得分:9)
您可以将绑定委托给元素的DOMNodeInserted
事件,这样当插入时,将运行事件处理程序。这在IE8及更早版本中不起作用,但<video>
标签也不起作用:
jQuery(document).delegate('video', 'DOMNodeInserted', function () {
alert('Wana watch a video?');
});
请注意,$(<root element>).on(<event>, <selector>, <event handler>)
与$(<root element>).delegate(<selector>, <event>, <event handler>)
相同。
以下是演示:http://jsfiddle.net/vW4Pg/
<强>更新强>
如果您对实施此想法感兴趣,请务必查看以下内容:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events
感谢评论@JFK。