3

在不使用超时的情况下,我想使用 jQuery 来检查即将生成的视频标签。在我们寻找视频标签的时候,它还不存在。

我可以使用 window.load 等待加载整个窗口,然后调用回调函数:

window.load = function () {player = jQuery("#videoid"; }

但是无论如何要“等待”直到将特定视频标签插入/加载到正文中然后执行回调函数?就像是:

jQuery("#videoid").bind('load', function() { player = jQuery("#videoid"); })

提前致谢

4

1 回答 1

10

您可以将绑定委托给元素的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 的评论。

于 2012-03-14T18:22:59.417 回答