jQuery 关于未来媒体元素的功能
jQuery on function for future media elements
我经常使用 jQuery 的 on
功能来处理未来的事件。例如:
$(document).on('click', '.my-div', myHandler);
但是,我无法让它与我的 video
标签上的 play
或 playing
事件一起使用:
$(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
快速 jQuery 示例
$('#parent').on('click', function(e) {
if ( $(e.target).hasClass('child') ) func();
});
// is (somewhat) the same as
$('#parent').on('click', '.child', func);
我经常使用 jQuery 的 on
功能来处理未来的事件。例如:
$(document).on('click', '.my-div', myHandler);
但是,我无法让它与我的 video
标签上的 play
或 playing
事件一起使用:
$(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
快速 jQuery 示例
$('#parent').on('click', function(e) {
if ( $(e.target).hasClass('child') ) func();
});
// is (somewhat) the same as
$('#parent').on('click', '.child', func);