我有以下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/

10-14 14:05