Heim > Web-Frontend > js-Tutorial > Wie führe ich eine Funktion nur einmal aus, nachdem die Fenstergröße in JavaScript/jQuery geändert wurde?

Wie führe ich eine Funktion nur einmal aus, nachdem die Fenstergröße in JavaScript/jQuery geändert wurde?

Mary-Kate Olsen
Freigeben: 2024-11-04 15:58:01
Original
652 Leute haben es durchsucht

How to Execute a Function Only Once After Window Resizing in JavaScript/jQuery?

Verzögerte Ausführung nach Fenstergrößenänderung in JavaScript/jQuery

Das $(window).resize-Ereignis in JavaScript und jQuery wird beim Öffnen des Browsers ausgelöst Fenstergröße ändert sich. Bei der manuellen Größenänderung durch Ziehen am Fensterrand wird es jedoch häufig mehrmals ausgelöst.

Einmaligen Aufruf erreichen:

So rufen Sie eine Funktion nur einmal auf, nachdem die Größe geändert wurde Wenn die Größenänderung abgeschlossen ist, kann ein Timer verwendet werden, um die Ausführung zu verzögern, bis der Größenänderungsprozess abgeschlossen ist. Hier ist eine Lösung:

Lösung:

<code class="javascript">var waitForFinalEvent = (function () {
  var timers = {};
  return function (callback, ms, uniqueId) {
    if (!uniqueId) {
      uniqueId = "Don't call this twice without a uniqueId";
    }
    if (timers[uniqueId]) {
      clearTimeout (timers[uniqueId]);
    }
    timers[uniqueId] = setTimeout(callback, ms);
  };
})();</code>
Nach dem Login kopieren

Verwendung:

<code class="javascript">$(window).resize(function () {
    waitForFinalEvent(function(){
      alert('Resize...');
      //...
    }, 500, "some unique string");
});</code>
Nach dem Login kopieren

In dieser Lösung ein Unikat Die Kennung wird für jeden Rückruf verwendet, um mehrere Ereignisregistrierungen zu verarbeiten.

Dieser Ansatz stellt sicher, dass die Rückruffunktion nach einer angegebenen Verzögerung nur einmal aufgerufen wird, sodass genügend Zeit für den Abschluss der Größenänderung bleibt und eine redundante Ereignisauslösung verhindert wird.

Das obige ist der detaillierte Inhalt vonWie führe ich eine Funktion nur einmal aus, nachdem die Fenstergröße in JavaScript/jQuery geändert wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage