j查询未来媒体元素的功能

jQuery on function for future media elements

本文关键字:功能 元素 媒体 查询 未来      更新时间:2023-09-26

我经常使用jQuery的on函数来处理未来的事件。例如:

$(document).on('click', '.my-div', myHandler);

但是,我无法让它与我的video标签上的playplaying事件一起使用:

$(document).on('playing', 'video', function() {
  console.log('video playing');
});

以下内容工作正常,但不绑定到将来的元素:

$('video').on('playing', function() {
  console.log('video playing');
});

jQuery对on函数的未来绑定语法是否仅适用于某些事件,或者它是否缺乏对HTMLMediaElement对象事件的支持?我正在使用jQuery 1.11.2。

它不支持不冒泡的事件,媒体事件不会冒泡,因为它们对除媒体元素以外的任何其他元素都没有意义,并且媒体元素(如 <audio><video>)无法嵌套,因此无需让事件在链上冒泡。

的工作方式是事件冒泡,在单击事件中,它从您单击的元素开始,即event.target,并一直持续到文档级别。

例如

,单击锚点内的图像也会触发锚点。

事件

委托的工作方式是,它将事件处理程序附加到事件链中更高位置的元素,然后检查event.target

快速 j查询示例

$('#parent').on('click', function(e) {
    if ( $(e.target).hasClass('child') ) func();
});
// is (somewhat) the same as
$('#parent').on('click', '.child', func);