我有一个隐藏的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中工作,但不是。
我的逻辑在这里失败了什么?
答案 0 :(得分:2)
看起来你正在使用DOM元素(newVideo)并使用它在另一个元素(mainVideo)上设置HTML而不实际引用它的HTML。
我认为考虑到你要完成的任务,append()
函数可能会更好。
尝试以下方法:
newVideo = $(this).children().children('object').clone(true);
$("#mainVideo").empty().append(newVideo);