Javascript 将主干事件与HTML5视频播放事件一起使用
我试图使用主干线来监听视频结束时的内容,但我得到的Javascript 将主干事件与HTML5视频播放事件一起使用,javascript,html,backbone.js,video,playback,Javascript,Html,Backbone.js,Video,Playback,我试图使用主干线来监听视频结束时的内容,但我得到的未定义不是返回的函数 视频结束后,尝试从主干视图中调用其他方法: playIOS: function() { var $video = $('video'), video = $video.get(0); video.play(); this.listenTo( video, 'ended', this.videoEnded ); }, videoEnded: function() { aler
未定义不是返回的函数
视频结束后,尝试从主干视图中调用其他方法:
playIOS: function() {
var $video = $('video'),
video = $video.get(0);
video.play();
this.listenTo( video, 'ended', this.videoEnded );
},
videoEnded: function() {
alert( 'Video Ended!' );
}
显然,我的方法不起作用。是否有推荐的解决方案可用于监控主干网的媒体播放事件?简单
var video = document.getElementsByTagName('video')[0];
video.onended = function(e) {
// your method which is to be called
};
方法仅适用于主干对象(模型
,集合
,…)和内部(例如添加
,删除
等)。尽管可以使用自定义事件扩展该事件列表,但它们仍然只能绑定到主干对象
end
是一个DOM事件,因此它的侦听器应该由DOM方法(addEventListener
或它的jQuery等价物)绑定。在主干网中,您可以使用视图来实现此目的
因此,您的代码可能如下所示:
var MyVideo = Backbone.View.extend({
el: '#video',
events: {
"ended": "videoEnded"
},
videoEnded: function() {
alert( 'Video Ended!' );
}
});
其中,#video
是指向DOM中已存在的video
元素的选择器。谢谢。我已经用过这个了。但我特别想知道主干网活动是否可行?没问题。但我能知道为什么这只能通过主干网来完成吗?只是好奇。事实上,这也是我的理由。我也很好奇。我最初尝试使用主干事件,与我的应用程序的其余部分保持一致。当我无法让它工作时,我无法(现在仍然无法)理解为什么。我正试图了解更多关于这种主干方法和视频的工作原理。方法仅应用于内部主干事件(例如添加
,删除
等)ended
是一个DOM事件,因此它的侦听器应该由addEventListener
或其jQuery等价物绑定。在主干中,您可以使用视图。谢谢。这其实就是我一直在寻找的答案!