Heim > Artikel > Web-Frontend > Wie verhindert man mehrere 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:
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>
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!