最初元素不存在时未触发的事件

时间:2014-08-13 19:37:15

标签: javascript jquery html html5 html5-video

我使用jQuerys .on()将事件处理程序绑定到视频元素。一切都很好:http://jsfiddle.net/me2loveit2/r0zt4qLg/3/

$('#testid').on('pause play ended', function (e) {
    $('body').append('<br>Event triggered: ' + e.type);
});

但如果视频最初不存在,则事件不会触发:http://jsfiddle.net/me2loveit2/r0zt4qLg/5/

这是有道理的,因为根据.on()上的jQuery文档:http://api.jquery.com/on/ 它声明:

  

事件处理程序仅绑定到当前选定的元素;他们   在您的代码调用.on()时页面上必须存在。

继续说要使用委托事件,

但是在我的示例(http://jsfiddle.net/me2loveit2/r0zt4qLg/5/)中,父元素永远不会触发这些事件,因为它们不适用于那里。 有没有办法使这项工作或是元素存在后附加事件处理程序的唯一解决方案?

1 个答案:

答案 0 :(得分:1)

你已经委托了这样的事件:

$(document).on('pause play ended','#testid', function (e) {
    $('body').append('<br>Event triggered: ' + e.type);
});