2017-09-27 79 views
2

我想2秒延迟添加以下代码:添加延迟到jQuery脚本

if (length < 20 & warningContainer.is(\':empty\')){ 
warningContainer.html(minLengthMessage); 
el.addClass(\'input-error\'); 
} 

我该怎么办呢?

我想:

warningContainer.delay(2000).html(minLengthMessage); 

PS:我不知道如何编写JQuery的

谢谢

+0

jQuery的延迟适用于只是影响。因此,使用'setTimeout'内置的JavaScript。另外我注意到你在if语句中使用按位AND而不是逻辑AND。你可以在这里阅读更多关于它的信息:https://stackoverflow.com/questions/7310109/whats-the-difference-between-and-in-javascript – sbr

回答

2

我不知道自己是怎么.delay作品jQuery的,但你可以做到这一点老JS的方式。

setTimeout(function() { 
    warningContainer.delay(2000).html(minLengthMessage); 
}, 2000); 
4

当你调用延迟(2000年),你实际上做的是调用延迟(2000年,“FX”)作为函数有一个可选的第二个参数(队列名称您要延迟的操作)其中默认为fx。各种效果方法(fadeOut(),animate()等)都使用这个队列,这就是为什么delay()对它们有影响。

我认为你可以使用

setTimeout(function(){ 
    // add your code 
}, 2000); 

https://www.mattlunn.me.uk/blog/2012/06/jquery-delay-not-working-for-you/