jQuery延迟和fadeOut有时不起作用

时间:2013-07-11 21:56:42

标签: javascript jquery

我在多个元素上遇到延迟()和隐藏()问题。

让我说我有这样的事情:

<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. :)

提前致谢, 韦德兰

2 个答案:

答案 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);