在ajax加载的页面部分上多次初始化Video.js播放器

时间:2012-12-28 13:16:27

标签: jquery ajax dynamic load video.js

几个月前,Jean-François提出了类似的问题,但我的问题更棘手。

我必须在名为'ajax Content'的节点中加载不同的内容 第一次初始化播放器并且视频已显示其控制条的外观。

但是如果加载了另一部电影或同一部电影,则Video.js脚本不会被初始化并运行。 如果我使用'remove()'或'empty()'清除节点,也会发生这种情况 这是外部html文件的一部分:

<div id="video">
<video id="html5_video" class="video-js vjs-ms-skin" autoplay controls preload>
    <source src="fileadmin/themen/de/iagos.mp4" type='video/mp4' />
</video>
<div class="ajaxLoadClose"></div>

这是jQuery脚本

$(".ajax-content").load(pfad+"#video",function(responce,status,xhr){
if (status=="success")
{

    _V_("html5_video");
    $(".ajax-content").css("display","block");
    $(".ajaxLoadClose").click(function() {
        var vidBig = $(this).parent().find("video").get(0);
        vidBig.pause();
        $(".ajax-content").fadeOut('slow', function() {
            $('.ajax-content').children().remove();
        });/**/
    });
}

});

有什么样的重置吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

如果您为每个视频创建一个新播放器而不转到新页面,它将开始构建播放器实例,因为对播放器的引用通过其ID存储在_V_.players对象中。如果你拨打player.destroy(),它将删除播放器参考。只要确保你没有其他任何引用玩家的东西。您还需要从页面中删除播放器.video-js div。在以后的版本中,player.destroy()函数也会这样做。

有关详细讨论,请参阅this。 :)