睡在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”解决方案 – 您的选择。 🙂