睡在JQuery?

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

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

该怎么办?

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

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

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

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

你去吧!

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

以下应该做你想要的:

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

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

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

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

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

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

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

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