睡在JQuery?

时间:2010-12-14 09:25:04

标签: javascript jquery

所有的问候 我想让JQuery在两个函数之间休眠/等待一秒

$('#div1').hide();
//sleep or wait or for a sec 
$("#div2").show();

怎么做?

5 个答案:

答案 0 :(得分:38)

对于您的特定功能.show()没有排队,但有一个简单的技巧让它排队,所以您可以使用.delay(),如下所示:

$('#div1').hide();
$("#div2").delay(1000).show(0);

通过给它一个0持续时间参数,它现在是一个即时但排队的动画。在其下方使用setTimeout(),因此它基本上与以下行为相同:

$('#div1').hide();
setTimeout(function() { $("#div2").show(); }, 1000);

答案 1 :(得分:6)

这里你去!

$('#div1').hide();
//sleep or wait or for a sec 
setTimeout('moomoo()', 1000);

function moomoo() {
  $("#div2").show();
}

答案 2 :(得分:3)

以下应该做你想做的事:

$("#div1").hide();
$("#div2").delay(1000).show(0);

答案 3 :(得分:1)

您不能只是暂停在调用之间执行代码。这意味着浏览器不会显示hide调用引起的更改,因为代码运行时不会进行更新。代码似乎什么都不做。

使用setTimeout方法安排稍后执行的代码:

$('#div1').hide();
window.setTimeout(function(){
  $("#div2").show();
}, 1000);

这会将元素设置为隐藏,并安排代码显示它以便稍后启动。代码将在setTimeout调用后继续,以便函数可以退出并且浏览器返回控件,以便它实际上可以隐藏元素。

答案 4 :(得分:-1)

没有真正的睡眠,但这将达到同样的目标:

$('#div1').hide();
//sleep or wait or for a sec 
window.setTimeout(function() { $("#div2").show(); }, 1000);

编辑:好吧,我现在已经纠正了“真正的”睡眠,但是使用setTimeout仍然是有效的“纯JS”解决方案 - 您的选择。 :)