我有以下JavaScript代码段:
$("#dashboard").addClass("standby").delay(3000).removeClass("standby");
$(".active").removeClass("active");
$("." + target).addClass("active");
$(".showDiv").removeClass("showDiv").addClass("hide");
$("#" + target).removeClass("hide").addClass("showDiv");
在
#dashboard
处于待机状态时,它应处理所有这些CSS类更改。更改之后,它应该再次显示#dashboard
。因此,我在delay()
类的添加和删除之间设置了standby
。为了查看它是否有效,我添加了3sek的持续时间过长。但这并没有延迟!为什么不呢?我没看到...
最佳答案
delay
仅适用于通过动画管道的动作,不会对像这样的即时原子操作的时间产生影响。为了延迟诸如添加或删除类之类的操作,可以使用setTimeout
。
.delay()方法允许我们延迟队列中跟在其后的函数的执行。它可以与标准效果队列或自定义队列一起使用。
.delay()方法最适合在排队的jQuery效果之间进行延迟。因为它是有限的(例如,它没有提供消除延迟的方法),所以.delay()不能替代JavaScript的本机setTimeout函数,后者可能更适合某些用例。
关于jquery - jQuery .delay()不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32594802/