我经常使用jQuery的on
函数来处理未来的事件。例如:
$(document).on('click', '.my-div', myHandler);
但是,我无法使用play
标记上的playing
或video
事件:
$(document).on('playing', 'video', function() {
console.log('video playing');
});
以下工作正常,但不会绑定到未来的元素:
$('video').on('playing', function() {
console.log('video playing');
});
jQuery的on
函数的未来绑定语法是否仅适用于某些事件,或者它是否缺少HTMLMediaElement对象事件的suppoert?我使用的是jQuery 1.11.2。
答案 0 :(得分:3)
它缺乏对不起泡的事件的支持,媒体事件不会起泡,因为它们对除媒体元素和媒体元素之外的任何其他元素都没有意义,例如{{1 }}和<audio>
无法嵌套,因此无需让事件冒出来。
它的工作方式是事件冒泡,在点击事件上,它在您单击的元素上启动,这是<video>
并一直持续到文档级别。
例如,点击锚点内的图像,也会触发锚点。
事件委托的工作方式是,它将事件处理程序附加到事件链上方的元素,然后检查event.target
快速jQuery示例
event.target