如何在模态中的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/