2017-09-27 104 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/