【问题标题】:why is jquery video.trigger("play") firing twice?为什么 jquery video.trigger("play") 触发两次?
【发布时间】:2018-07-21 20:24:16
【问题描述】:

我有一个 html5 视频元素,我想在页面加载时播放。 每次播放视频后,我都想为不同的东西添加更多代码。

出于某种原因,.trigger("play") 使视频播放两次。 如果我暂停它并从 html 控件再次播放它会播放一次。 我不明白为什么初始触发器会使视频播放两次。 我只需要它运行一次。

html:

<video width="320" height="240" controls >
<source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4">
      Your browser does not support the video tag.
</video>

jquery:

    var triggerCount = 0;
    $("video").on("play", function () {
    console.log(++triggerCount);
//do more stuff here
    })

    $("video").trigger("play");

代码示例:jsFiddle

【问题讨论】:

    标签: javascript jquery html5-video


    【解决方案1】:

    您不应手动触发这些原生事件。只需使用:

    $("video")[0].play()
    

    或所有视频

    $("video").each((i,el) => el.play());
    

    或更好的自动播放属性

    <video width="320" height="240" controls autoplay>
    

    请注意,某些浏览器可能会在没有用户交互的情况下阻止自动播放..

    【讨论】:

    • 谢谢!你的代码似乎工作。而且我找到了一个纯 java 脚本的解决方案,但只是为了学习目的 - 它触发两次的原因是什么?
    • 因为首先是手动触发,其次是开始播放时由媒体元素触发..
    猜你喜欢
    • 2011-01-27
    • 2011-07-28
    • 2016-06-02
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2021-07-08
    相关资源
    最近更新 更多