27 Stimmen

Aufruf einer Javascript-Funktion nach 5 Sekunden nach dem letzten Tastendruck

Ich habe ein Formular mit einer <input type=text /> und ich möchte eine Javascript-Funktion nach 5 Sekunden nach dem letzten Tastendruck aufrufen, und jedes Mal, wenn eine neue Taste gedrückt wird, sollte dieser Timer zurückgesetzt werden und die Funktion erst nach 5 Sekunden aufrufen.

Wie kann ich das tun?

Ich verwende jQuery.

Danke!

64voto

Crescent Fresh Punkte 111444

So etwas sollte Ihnen den Einstieg erleichtern:

var timeout;
$('input[type=text]').keypress(function() {
    if(timeout) {
        clearTimeout(timeout);
        timeout = null;
    }

    timeout = setTimeout(myFunction, 5000)
})

4voto

Czakalli Punkte 152

Diese Antwort ist großartig, aber denken Sie daran, dass Sie diesen Code aktivieren müssen, nachdem die Dokumente geladen wurden und nachdem die Funktion geladen wurde, um die Zeitüberschreitung zu löschen.

Hier ist der vollständige Code:

var timeout;
    $(document).ready(function(){
      $('input[type=text]').keypress(function() {
          if(timeout) {
              clearTimeout(timeout);
              timeout = null;
          }
          timeout = setTimeout(myFunction, 5000);
      });
    });

    var myFunction = new function() { 
      alert('myFunction is running');
      clearTimeout(timeout); // this way will not run infinitely
    }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

0voto

Steve Harrison Punkte 111024

Obwohl es nicht jQuery verwendet, könnten Sie auch einen Blick auf die beschriebene Entprellungsfunktion werfen aquí .

Steve

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X