我有一个html5视频,我正在尝试使用jQuery(1.11.1)将事件挂钩(例如播放,暂停)。但是,我似乎无法让它发挥作用。
在我的视频页面上,我首先将以下内容放入js控制台:
$('body').on('pause','video#videoTag',
function(e) {
console.group('(on) Video: pause');
console.log('e: ',e);
console.log('this: ',this);
console.groupEnd();
});
在js控制台中,它返回一个这样的对象:
Object[body#videoOverlay.modal-frame]
这是不对的,暂停时不会触发。
然后我将它放入js控制台:
$('body').delegate('video#videoTag','pause',
function(e) {
console.group('(delegate) Video: pause');
console.log('e: ',e);
console.log('this: ',this);
console.groupEnd();
});
返回与之前相同的内容,同样没有触发暂停事件。
但是,如果我将它放入js控制台,它可以工作:
$('video#videoTag').on('pause',
function(e) {
console.group('(direct) Video: pause');
console.log('e: ',e);
console.log('this: ',this);
console.groupEnd();
});
返回
Object[video#videoTag]
并且暂停事件触发,我看到我的控制台日志。
所以我的问题是..前两个为什么不工作?委派的事件处理程序是否不适用于html视频元素?
更新:我还尝试过其他视频事件:播放,更新,结束,停止,它也不适用于其中任何一个,除非我像上一个例子一样直接执行。