我以前使用以下功能在后台加载视频(jquery 2.2.4):
function getVideo() {
if ( $('video').length ) {
$('video').each(function() {
if (Modernizr.mq('(min-width: 1024px)') && $(this).children().attr('src') === undefined ) {
var src = $(this).children().attr("data-src");
$(this).children().attr('src',src);
// $('video').load()
$('video').on('load', function(){
alert("Video Loaded");
console.log('vidload');
});
}
});
}
}
更新到jquery 3.2.1之后,我不得不将行$('video').load()
更改为$('video').on('load', function(){});
。但是,视频不再加载。我已经测试了代码,并且每一行都会执行到$('video').on('load', function(){});
。我不知道为什么它没有加载。是否因为.on('load', function(){})
属性只能访问window
?如果是这样,那么如何使用document
属性来加载视频?
PS:这不是why $(window).load() is not working in jQuery?或jQuery on load not firing (not Ajax)
的副本编辑1:
@Cool JK @Alive to Die这是Drupal页面。因此,本身并没有手动编写一个特定页面的直接HTML。但是,该特定块的主题中的标记为:
$variables['video_markup'] = '<video autoplay loop muted id="bgvid"><source data-src="'.$video_link.'" type="video/mp4"></video>';
大致翻译为:
<video autoplay="" loop="" muted="" id="bgvid" data-video="0"><source data-src="https://somevideo" type="video/mp4"></video>
我一直在此定位此video
元素。
@Phil如果不是这种情况,那么jquery3中.load()的确切含义是什么?
@dysfunc感谢您的尝试。但是,对于我来说,这是行不通的。
编辑2:我降级到jQuery2来解决我的问题。