Jquery ui 在jQuery UI对话框中使用video.js会出现第二个视频和重复播放的问题 上下文
我有一个页面,其中包含一系列指向jQueryUI对话框的链接,这些对话框中有video.js播放器 问题 当你第一次点击其中一个链接时,一切都很完美 当您单击后续时间时,您会遇到问题。我已经修复了打开第二个不同视频的问题,使所有ID都是唯一的 然而,这似乎无助于第二次打开同一个视频;因此,我甚至使这些播放器的id是唯一的(请参见下面的Jquery ui 在jQuery UI对话框中使用video.js会出现第二个视频和重复播放的问题 上下文,jquery-ui,dialog,video.js,Jquery Ui,Dialog,Video.js,我有一个页面,其中包含一系列指向jQueryUI对话框的链接,这些对话框中有video.js播放器 问题 当你第一次点击其中一个链接时,一切都很完美 当您单击后续时间时,您会遇到问题。我已经修复了打开第二个不同视频的问题,使所有ID都是唯一的 然而,这似乎无助于第二次打开同一个视频;因此,我甚至使这些播放器的id是唯一的(请参见下面的id属性,该属性包含视频的散列以及兰德) 确定的问题 我看到的情况是,一旦关闭对话框,浏览器将继续下载视频源。这意味着随后打开的对话框将创建更多视频下载等 问题 如
id
属性,该属性包含视频的散列以及兰德
)
确定的问题
我看到的情况是,一旦关闭对话框,浏览器将继续下载视频源。这意味着随后打开的对话框将创建更多视频下载等
问题
我不知道这是否是解决这个问题的正确答案;然而,我最终改变了我的javascript,使其看起来像下面这样
秘密是设置src=”“以使浏览器停止缓冲。这会在控制台上引发一个视频错误,我真的不喜欢;但现在它可以工作
video_play_click_event: function(event) {
$.loading();
$('<div title="'+$(this).attr('title')+'">').load($(this).attr('href'), function(responseText, textStatus){
$.loading();
$this = $(this);
$this.dialog({
width: 320,
height: 400,
modal: true,
buttons: {
Close: function() {
$(this).dialog('close');
},
},
open: function(event, ui) {
id = $(this).find('.video-js:first').attr('id');
_V_(id);
$(this).css({overflow: 'hidden', padding: '0'});
},
beforeClose: function() {
$('.video-js').player().pause();
$('.video-js video').attr('src', '');
$('.video-js').remove();
}
});
});
return false;
}
video\u play\u click\u事件:函数(事件){
$.loading();
$('').load($(this.attr('href'),函数(responseText,textStatus){
$.loading();
$this=$(this);
$this.dialog({
宽度:320,
身高:400,
莫代尔:是的,
按钮:{
关闭:函数(){
$(this.dialog('close');
},
},
打开:功能(事件、用户界面){
id=$(this.find('.video js:first').attr('id');
_V_(id);
$(this.css({overflow:'hidden',padding:'0'});
},
beforeClose:function(){
$('.video js').player().pause();
$('.video js video').attr('src','');
$('.video js').remove();
}
});
});
返回false;
}
我在一个给定的页面上有很多视频,我也面临着同样的问题。但是下面的方法对我来说很有效
注意:更改页面中每个视频的MYID
jQuery(document).ready(function(){
jQuery("a#videolink").fancybox({
frameWidth: 800,
frameHeight: 450,
overlayShow: true,
overlayOpacity: 0.7
});
});
<a id="videolink" href="#MYID" title="Test Video">
<img src="mp4test.jpg" width="248" height="145" />
</a>
<div style="display:none">
<video id="MYID" poster="mp4test.jpg" class="video-js vjs-default-skin"
controls preload="auto" width="300" height="300" data-setup="{}" >
<source src="mp4test.mp4" type='video/mp4'>
</video>
</div>
jQuery(文档).ready(函数(){
jQuery(“视频链接”).fancybox({
帧宽:800,
帧高:450,
是的,
产能过剩:0.7
});
});
video_play_click_event: function(event) {
$.loading();
$('<div title="'+$(this).attr('title')+'">').load($(this).attr('href'), function(responseText, textStatus){
$.loading();
$this = $(this);
$this.dialog({
width: 320,
height: 400,
modal: true,
buttons: {
Close: function() {
$(this).dialog('close');
},
},
open: function(event, ui) {
id = $(this).find('.video-js:first').attr('id');
_V_(id);
$(this).css({overflow: 'hidden', padding: '0'});
},
beforeClose: function() {
$('.video-js').player().pause();
$('.video-js video').attr('src', '');
$('.video-js').remove();
}
});
});
return false;
}
jQuery(document).ready(function(){
jQuery("a#videolink").fancybox({
frameWidth: 800,
frameHeight: 450,
overlayShow: true,
overlayOpacity: 0.7
});
});
<a id="videolink" href="#MYID" title="Test Video">
<img src="mp4test.jpg" width="248" height="145" />
</a>
<div style="display:none">
<video id="MYID" poster="mp4test.jpg" class="video-js vjs-default-skin"
controls preload="auto" width="300" height="300" data-setup="{}" >
<source src="mp4test.mp4" type='video/mp4'>
</video>
</div>