【问题标题】:jquery - on play not working when using $(document).on('play', 'video', function(){})jquery - 使用 $(document).on('play', 'video', function(){}) 时播放不起作用
【发布时间】:2017-09-27 08:08:34
【问题描述】:

我不知道为什么在播放不起作用!!!

$('video').on('play', function(){ alert('working'); });

$(document).on('play', 'video', function(){ //not working });

据我所知,对于音频/视频,我们应该使用 get(0) 来获取 dom,但对于第二个它没有得到,您的猜测/建议是什么?

另一个方法问题

所以似乎没有人知道这一点,所以我决定使用点击事件。在单击事件中,我检查它是否已暂停,如果已暂停,请暂停其他人并播放此事件,否则也暂停此事件。

$(document).on('click', 'video', function(){
    if($(this).get(0).paused)
    {
        $(this).get(0).play();
    }
    else
    {
        $(this).get(0).pause();
    }
});

它可以在 Firefox 中使用,但是在使用 chrome 或 ie 时问题就开始了。单击视频时它可以工作,但是当单击播放按钮时它没有检测到单击事件已触发!!!我该如何解决?

【问题讨论】:

    标签: javascript jquery audio video playback


    【解决方案1】:

    你可以试试下面的javascript解决方案:

    document.getElementById('vid1').addEventListener('play', function(){ alert('working'); });
    

    注意:“vid1”是视频元素的 ID。

    【讨论】:

    • 谢谢@Ronnee007,但您自己测试过吗?它没有工作:(
    • 是的,我测试了它,它对我来说效果很好。您可以尝试的另一个解决方案是在 HTML 本身的视频标签中添加“onplay”属性。让我知道这是否有效!
    • 我不知道如何表达我的快乐,但谢谢!我 **** 自己来修复它,你的最后一个建议就像一个魅力!谢谢兄弟:)
    • 很高兴我能帮上忙 :)
    【解决方案2】:
    document.addEventListener('play', function (e) {
        var video = e.target;
        if (video.nodeName === 'VIDEO') {
            console.log('onplay', video);
            // do something ...
        }
    }, true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      相关资源
      最近更新 更多