Javascript 带有HTML5视频的JQuery在动态创建的代码上检测“播放”事件,但不检测“结束”事件

Javascript 带有HTML5视频的JQuery在动态创建的代码上检测“播放”事件,但不检测“结束”事件,javascript,html,jquery,html5-video,jquery-events,Javascript,Html,Jquery,Html5 Video,Jquery Events,最近,我一直在试验动态生成的HTML5标记,我在HTML5视频标记上绑定end事件时遇到了一个问题 我使用了stack上的解决方案,但它只适用于play事件(仅适用于Chrome,不适用于Firefox) 有什么想法吗?我有这个解决方案,可以在firefox、chrome和safari上使用(即未经测试) 创建音频元素: var audio=document.createElement(“音频”) 为音频元素创建eventlistener: audio.addEventListener('end

最近,我一直在试验动态生成的HTML5标记,我在HTML5视频标记上绑定
end
事件时遇到了一个问题

我使用了stack上的解决方案,但它只适用于
play
事件(仅适用于Chrome,不适用于Firefox)


有什么想法吗?

我有这个解决方案,可以在firefox、chrome和safari上使用(即未经测试)

创建
音频元素

var audio=document.createElement(“音频”)

为音频元素创建
eventlistener

audio.addEventListener('end',function(){
警报(“完成”);

});

原因是,大多数HTML5事件不冒泡,jQuery依赖于事件冒泡来进行事件委派,这很令人伤心,但如果需要,可以使用addEventListener实现:

//注意第三个参数必须为true,这对工作很重要
文档.添加的事件列表器('ended',函数(e){
if($(e.target).is('video')){
//e、 目标结束了游戏
}
},对);

作为替代,您可以使用thorugh jQuery

如果您为
mediaelement
请求polyfill,webshim将修复mediaelement功能的jQuery事件委派代码:

```polyfill('mediaelement')

$(文档).on('play','end',function(){ //这场比赛结束了 });


它不会给出任何错误,但也不会播放,您能解释一下如何使用您的方法让它播放吗?它播放,但回调不起作用。谢谢你的帮助。@Marek你得到解决方案了吗?没有。。。我尝试了Chrome的所有版本,包括实验版本,这个回调根本不起作用,有人报告了bug,但他们似乎忽略了它。我所做的是手动回调,首先我检查视频持续时间,并在这段时间后设置回调,该回调将删除视频元素。这不是一个正确的方法,但它有效。谢谢你,但不幸的是你的addEventListener不起作用。。。我现在将尝试webshim。不幸的是,安装webshim需要进行很多更改,因为我使用的是nodejs,而且我还被要求编写js文件数量最少的应用程序。