【问题标题】:Firing an Event on <video> end with JQuery selector以 JQuery 选择器在 <video> 上触发事件
【发布时间】:2014-11-20 04:27:44
【问题描述】:

当视频完成时我正在触发一个事件:

video.addEventListener("ended", function() {
    //whatever
});

如果我通过纯 javascript 获取选择器,这将有效:var video = document.getElementById('test');

如果我通过 jQuery 抓取选择器,这将不起作用:var video = $("#test");

为什么会这样? Here's the accompanying JSFiddle

【问题讨论】:

  • $("#test").on("ended", fn) 不起作用?

标签: javascript jquery html html5-video


【解决方案1】:

那是因为$("#test") 返回一个 jQuery 对象。使用$("#test").get(0)获取第一个dom元素。

var video = $("#test").get(0);

【讨论】:

    【解决方案2】:

    对于 jQuery,使用 .on() 方法:

    jqueryVideo.on("ended", function() {
        console.log('This Works 2');
    });
    

    http://jsfiddle.net/w4zahwk9/4/

    【讨论】:

    • 两个答案在技术上都有效,我选择另一个作为答案,因为它实际上解释了为什么 "var video = $("#test");"没用。
    • 这是正确的方法。选择器 .get(0) 所做的正是原生 dom 所做的。因此,您无需为调用和调用 .get(0) 增加额外的 jquery 开销。
    猜你喜欢
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 2011-09-26
    相关资源
    最近更新 更多