我无法与HTML5视频的结束事件进行交互。问题是标签是使用lightbox-clone插件动态添加到页面的,我不能使用bind来获取结束事件。尝试使用 live(),但这也不起作用。我当然可以使用“click”作为事件,但播放,暂停或结束都不会起作用。尝试了委托,但这并没有成功。
代码看起来像这样(我使用了Stackoverflow上其他地方发布的解决方案):
$("video").live("play", function() {
alert("It moves!");
});
使用bind具有所需的效果,但它不会影响弹出容器中的视频标记。 HTML是包含在div中的标准<video>
标记,但如果您需要它,我可以包含它。
任何人都可以为此考虑解决方法,或者根本无法做到这一点?我是Jquery的新手,所以我可能会遗漏一些明显的东西。我正在使用旧版本的Jquery(1.3.2),但也在1.6.1上测试过没有结果。
答案 0 :(得分:5)
我认为live
方法依赖于事件冒泡。只有live
方法可以捕获气泡的事件。没有标准说video
标记事件应该冒泡,所以我认为浏览器以非冒泡的方式实现这些事件。这意味着您必须bind
创建每个video
元素。
答案 1 :(得分:0)
您可以使用delegate
方法吗?我发现它比live
更可靠。您甚至可以使用body标签作为参考。
$('body').delegate('video','play',function() {
alert('it moves!');
});
我在jsfiddle上放了一个非常简单的例子,它似乎有用,虽然它不是一个完整的视频标签......
编辑:经过深思熟虑后,这个例子一点也不好 - 甚至自定义事件被jquery触发时也会被触发。