用jquery隐藏时隐藏youtube视频

时间:2011-05-02 10:06:11

标签: jquery youtube

这里有几个类似的问题,但似乎没有一个适用于我的应用程序。

在我的网站上,我打开了一个带有嵌入视频的灯箱供用户观看。他们点击缩略图,视频显示在缩略图的右侧。这是我正在使用的javascript代码:

$(document).ready(function(){         $( 'vidframe')隐藏();

    $('a').click(function () {

        $('.vidframe').hide();
        $('#'+this.id.substr(4)).fadeToggle(400);
    });



});

jsFiddle链接到半工作示例:http://jsfiddle.net/YX8pQ/24/

然而,当从一个视频更改为下一个视频时,视频将不会停止。我尝试通过更改

将其从DOM中删除
$('.vidframe').hide();

$('.vidframe').remove();

然而,这个,呃,从我的DOM中删除所有视频并完全破坏了一些东西。有没有办法在从一个到另一个点击时隐藏视频,但是停止播放和缓冲iframe?我觉得我在.remove()的正确轨道上,但不知道从哪里去。

1 个答案:

答案 0 :(得分:4)

嗨,我只是瞥见了你的代码。

你有一切都好,但电影没有停止的原因只是因为隐藏。设置可见:无;所以他们仍然会参加比赛。

这样做的方法是创建带有一些ID的动态iframe。

当有人点击下一部电影时,它会.remove()当前电影。把新的一个放在一个你记得某处的ID的地方。然后在隐藏的iframe中重新移除已移除的iframe,以便它可以预先缓冲并且无形地做好准备。你不应该真正做隐藏的加载,但是如果你不打算分配电影,那么当你开始加载数十部电影时,这只会产生问题。

修改

好吧所以我基本上把你的代码分开并将一些结构模式化 - 我也减少了大约30%的代码 - 因为我让jquery做了很多努力。

这不会预装您的电影,因为这是一种非常糟糕的做法,如果您开始添加大量电影,可能会导致您的网站“慢慢”加载。这实际上取代了点击的一个,淡入你可以播放它。

检查小提琴的新版本

http://jsfiddle.net/YX8pQ/25/

并阅读这些内容 - 也许你将能够做得更好。

http://code.google.com/apis/youtube/iframe_api_reference.html

Stop all YouTube iframe embeds from playing?