为什么这个克隆不适用于ie但它与firefox一起使用?

时间:2009-09-26 04:02:18

标签: jquery internet-explorer

我有一个隐藏的vimeo flash对象

CSS:

#banner-vid-link div.object, #mainVideo, #blackSheet {
    display: none;
}

HTML:

<div id="banner-vid-link">
   <img src="thumbnail.png" /><br />Watch This!
   <div class="object">
           <object width="700" height="394"><youget the idea /></object>
   </div>
</div>

当您点击缩略图时,使用jQuery弹出视频:

        $('#banner-vid-link').click(function(){
            newVideo = $(this).children().children('object');
            $('#blackSheet').fadeIn('slow', function(){
                $('#mainVideo').html(newVideo); // put the video in the box
                $('#mainVideo').fadeIn().children().fadeIn(); // fadein the 
mainVideo box, and fadeIn the object inside mainVideo
            });
    }); 

blackSheet是一个全屏覆盖,#mainVideo恰好位于中间,带有以下css

现在上面的代码 - 在Firefox和Safari中一切正常。但是在xp上的ie7(尚未尝试任何其他Windows设置)但由于某种原因它有缺陷。似乎mainVideo没有使用newVideo变量填充 - 它只是加载屏幕叠加层,就是这样。

最初我在以下行使用了jquery的clone():

newVideo = $(this).children().children('object').clone(true);

但是我在某个地方读过,即可能不喜欢克隆,或者它对ff和safari的处理方式不同。无论有没有克隆,它仍然可以在ff中工作,但不是。

我的逻辑在这里失败了什么?

1 个答案:

答案 0 :(得分:2)

看起来你正在使用DOM元素(newVideo)并使用它在另一个元素(mainVideo)上设置HTML而不实际引用它的HTML。

我认为考虑到你要完成的任务,append()函数可能会更好。

尝试以下方法:

newVideo = $(this).children().children('object').clone(true);
$("#mainVideo").empty().append(newVideo);