我有一个像这样隐藏的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中工作,但不能在ie中工作。
这里我的逻辑中的失败之处是什么?
发布于 2009-09-26 04:15:26
看起来您正在获取一个DOM元素(newVideo),并使用它在另一个元素(mainVideo)上设置超文本标记语言,而实际上并没有引用它的超文本标记语言。
我认为考虑到您要完成的任务,append()函数可能会工作得更好。
尝试以下操作:
newVideo = $(this).children().children('object').clone(true);
$("#mainVideo").empty().append(newVideo);https://stackoverflow.com/questions/1480409
复制相似问题