2017-09-27 1 views
2

Hinzufügen möchte ich eine Verzögerung von 2 Sekunden, um den folgenden Code hinzuzufügen:Verzögerung auf ein jquery Skript

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

Wie kann ich das tun?

Ich habe versucht:

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

PS: Ich habe keine Ahnung, wie JQuery kodieren

Danke

+0

jQuery Verzögerung arbeitet auf Effekte nur nutzen können. Also benutze JavaScript's 'setTimeout'. Auch habe ich bemerkt, dass Sie bitweise UND anstelle von logischen UND innerhalb der if-Anweisung verwenden. Sie können mehr darüber hier lesen: https://stackoverflow.com/questions/7310109/whats-the-difference-between-and-in-javascript – sbr

Antwort

2

Ich bin mir nicht sicher, wie die .delay Werke in jQuery, aber Sie können dies tun, der alte JS Weg.

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

Wenn Sie Verzögerung nennen (2000), was Sie eigentlich tun Aufruf Verzögerung (2000, „fx“) als die Funktion einen optionalen zweiten Parameter hat (die Queue-Namen Sie wollen von verzögern Betrieb) Standard ist fx. Die verschiedenen Effektmethoden (fadeOut(), animate() usw.) benutzen diese Warteschlange, weshalb sich delay() auf sie auswirkt.

ich glaube, Sie

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

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