jquery - 使用 $(document).on('play', 'video', function()) 时播放不起作用

Posted

技术标签:

【中文标题】jquery - 使用 $(document).on(\'play\', \'video\', function()) 时播放不起作用【英文标题】: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 时问题就开始了。单击视频时它可以工作,但是当单击播放按钮时它没有检测到单击事件已触发!!!我该如何解决?

【问题讨论】:

【参考方案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);

【讨论】:

以上是关于jquery - 使用 $(document).on('play', 'video', function()) 时播放不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jquery

jquery.min.js

什么时候应该使用 jQuery 的 document.ready 函数?

为啥我不能使用 onClick 在 jQuery $(document).ready 函数中执行函数?

jquery - 使用 $(document).on('play', 'video', function()) 时播放不起作用

jQuery中使用了document和window哪些属性和方法小结