如何在模态中的HTML 5video元素中定位自动播放属性

我在模态窗口中有一个HTML 5video元素。 现在我需要检查是否打开了模态并且video元素具有自动播放然后播放video。 如果video没有属性自动播放,则不播放video。

有关完整代码,请查看上面的Codepen。

 

所以它需要以autoplay为目标,它不能使用video中的ID字段,它应该以id: popup1的video元素为目标,参见Codepen!

 $(document).ready(function(){ $('a[data-modal-id]').click(function(e) { e.preventDefault(); if ($('.modal-box.opened').find('video').attr(autoplay) == true) { console.log('CLICK: ModalBox if Video Autoplay is true.'); } }); }); 

问题出在上面的代码。 现在我知道这只给了我一个仅供测试的日志。

此代码提供错误:Uncaught ReferenceError:未定义自动播放

提前感谢您的帮助。

您正在使用变量autoplay而不是字符串"autoplay" ,请尝试将代码更新为:

 if ($('.modal-box.opened').find('video').attr('autoplay') == true) { console.log('CLICK: ModalBox if Video Autoplay is true.'); } 

更新:

试试这个:

 if (($('.modal-box.opened').find('video').attr('autoplay') === 'autoplay')) { $('.modal-box.opened').find('video').get(0).play(); } 

我想你忘记了自动播放的引用,比如

 if ($('.modal-box.opened').find('video').attr("autoplay") == true) 

此外,它应该使用prop(“autoplay”),知道autoplay是一个属性

编辑:自动启动

$(this).get(0)不返回所需的元素,因此您必须再次恢复video:

 var video = $('.modal-box.opened').find('video'); if (video.prop("autoplay")) { video.get(0).play(); } 

要检查是否设置了自动播放:

 var $video = $('.modal-box.opened').find('video'); if( typeof $video.attr('autoplay') === "string"){ $video.get(0).play(); } 

或检查是否未设置自动播放:

 if( typeof $video.attr('autoplay') === "undefined"){ //Logic here } 

请检查此示例我希望它会有所帮助

[1]: https://jsfiddle.net/NbE9d/570/