我在多个元素上遇到延迟()和隐藏()问题。
让我说我有这样的事情:
<div id="one">
<p id="label1_one">text</p>
<p id="label2_one">text</p>
</div>
<div id="two">
<p id="label1_two">text</p>
<p id="label2_two">text</p>
</div>
<div id="three">
<p id="label1_three">text</p>
<p id="label2_three">text</p>
</div>
和脚本
function toogle(){
if (1){
$("#one").css("display", "inline-block");
$("#label1_two").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label2_two").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label1_three").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label2_three").css("display", "inline-block").delay(10000).fadeOut(1000);
}
if (2){
$("#two").css("display", "inline-block");
$("#label1_one").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label2_one").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label1_three").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label2_three").css("display", "inline-block").delay(10000).fadeOut(1000);
}
if (3){
$("#three").css("display", "inline-block");
$("#label1_one").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label2_one").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label1_two").css("display", "inline-block").delay(10000).fadeOut(1000);
$("#label2_two").css("display", "inline-block").delay(10000).fadeOut(1000);
}
}
每次有些元素在页面上保持可见。 这是否存在一些已知问题。
或者有人可以指出我的其他解决方案。
Code is example from real situation. :)
提前致谢, 韦德兰
答案 0 :(得分:1)
if(1)
表示它将始终访问您的if语句
如果您在jQuery中引用div
id,则需要将其更改为:
$('#one').click(function(){
//do something.
});
答案 1 :(得分:0)
您可以尝试使用.stop方法(http://api.jquery.com/stop/),如果在尝试为已经动画的对象设置动画时发生错误,则调用stop将在启动前清除所有动画
$("#label1_one").css("display", "inline-block").stop(true, true).delay(10000).fadeOut(1000);