我有一个不适合我的剧本 - 我不知道为什么,但我确定我做的不对。
的JavaScript
<script>
$('.topslider .orbit-container').hide();
$('.topslider').html('<img src="img/loading.gif" id="loading" />')
$(window).bind('load', function() {
$('.topslider #loading').hide();
$('.topslider .orbit-container').fadeIn('slow');
});
</script>
HTML
<div class="topslider">
<div class="orbit-container">
[content here]
</div>
</div>
我正在尝试隐藏div.orbit-container
并显示img#loading
加载div.orbit-container
所需的时间,然后隐藏img#loading
并显示div.orbit-container
加载。任何帮助表示赞赏!
这是一个小提琴:http://jsfiddle.net/Y9CQ4/96/
1)div.orbit-container
成功隐藏了
2)img#loading
成功显示了
3)img#loading
成功隐藏了
4)div.orbit-container
不会消失...这就是问题所在。
答案(如下所述)是将.html()
替换为.append()
,就像在这个小提琴中一样:http://jsfiddle.net/Y9CQ4/97/
答案 0 :(得分:4)
.html()覆盖内部代码,.append()将代码附加到当前内部代码 通过.html()删除你的轨道容器
$('.topslider .orbit-container').hide();
$('.topslider').html('<img src="http://lorempixel.com/400/200/" id="loading" />')
$(window).bind('load', function() {
$('.topslider #loading').hide();
$('.topslider').html('<div class="orbit-container">CONTENT HERE</div>')
$('.topslider .orbit-container').fadeIn('slow');
});
或使用.append()fcn
$('.topslider .orbit-container').hide();
$('.topslider').append('<img src="http://lorempixel.com/400/200/" id="loading" />')
$(window).bind('load', function() {
$('.topslider #loading').hide();
$('.topslider .orbit-container').fadeIn('slow');
});
答案 1 :(得分:1)
HTML:
<div class="topslider">
<div class="orbit-container">
CONTENT HERE
</div>
<div id="loading" style="display:none;">LOADING</div>
</div>
jQuery的:
$('.topslider .orbit-container').hide();
$('.loading').html('<img src="http://lorempixel.com/400/200/" />')
$(window).bind('load', function() {
$('.topslider #loading').hide();
$('.topslider .orbit-container').fadeIn('slow');
});