我正在使用“video.js”并写了一些javascript来让其他视频播放停止,如果点击并播放另一个视频。这适用于IE9 +,Chrome,Safari和其他使用HTML5标记的现代浏览器。
我的问题在于IE8和SWF / Flash后备。单击时,click事件似乎没有被触发。
$('div.video-js').on('click', function() {
var $this = $(this),
player = videojs($this[0]);
thisVideo = $this.children('object'); //get <object> for IE8 vs <video>
/*
If videoj.js API is ready then...
call the stop videos, and exception is the one that is clicked
*/
player.ready(function() {
if(player.paused() === false) {
//stopVideos(thisVideo[0]);
}
});
});
SWF似乎吸收了包含div.video-js
元素的点击事件。虽然,当点击div时,视频仍会停止并播放,但我不确定为什么点击事件没有触发......
控件和重播按钮仍然有效,并触发上面的点击事件......
答案 0 :(得分:1)
您可以使用play
事件来阻止其他玩家。由于您使用的是jQuery,因此可以使用not()
来选择除触发事件的玩家之外的所有玩家。
$(".video-js").each(function() {
var id = this.id;
videojs(id).ready(function() {
this.on('play', function() {
$(".video-js").not("#" + id).each(function() {
videojs(this.id).pause(true);
});
});
});
});