Heim  >  Artikel  >  Web-Frontend  >  Wie verhindert man mehrere Größenänderungsereignisse in JavaScript/jQuery?

Wie verhindert man mehrere Größenänderungsereignisse in JavaScript/jQuery?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 11:56:02863Durchsuche

How to Prevent Multiple Resize Events in JavaScript/jQuery?

Verhindern mehrerer Größenänderungsereignisse in JavaScript/jQuery

Bei Verwendung von $(window).resize kann es bei der manuellen Fenstergrößenänderung zu mehreren Auslösungen des Ereignisses kommen. Um dieses Problem zu beheben und sicherzustellen, dass die Funktion nach Abschluss der Größenänderung nur einmal aufgerufen wird, ziehen Sie die folgende Lösung in Betracht:

Implementierung mit waitForFinalEvent

Diese modifizierte Version einer Lösung von CMS ermöglicht mehrere Aufrufe in verschiedenen Teilen Ihres Codes:

<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>

Verwendungsbeispiel

Integrieren Sie die Funktion „waitForFinalEvent“ wie folgt in Ihren Code:

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

Dadurch wird sichergestellt, dass die Fenstergröße geändert wird abgeschlossen ist, wird die in waitForFinalEvent angegebene Rückruffunktion mit einer Verzögerung von 500 Millisekunden ausgeführt. Der eindeutige ID-Parameter verhindert Konflikte bei der Verwendung mehrerer Rückrufe zur Fenstergrößenänderung.

Das obige ist der detaillierte Inhalt vonWie verhindert man mehrere Größenänderungsereignisse in JavaScript/jQuery?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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