jQuery:等待加载元素(视频标记 - 动态生成)

时间:2012-03-14 18:18:12

标签: jquery load html5-video onload dynamically-generated

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

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

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

但无论如何要“等待”,直到特定的视频标签插入/加载到正文然后执行回调函数?类似的东西:

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

提前致谢

1 个答案:

答案 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。