Heim > Artikel > Web-Frontend > Wie kann verhindert werden, dass mehrere $(window).resize-Ereignisse ausgelöst werden?
In der Webentwicklung kann die Manipulation der Browserfenstergröße mithilfe des Ereignisses $(window).resize ausgelöst werden mehrere Schüsse. Um dieses Problem zu beheben, untersuchen wir eine Lösung, die eine Funktion erst ausführt, nachdem die Größenänderung abgeschlossen ist.
Lösung:
So rufen Sie eine Funktion auf, nachdem die Größenänderung des Browserfensters abgeschlossen ist Wenn wir fertig sind, können wir die Funktion „waitForFinalEvent“ verwenden. Diese Funktion benötigt eine Rückruffunktion, eine Millisekundenverzögerung und einen eindeutigen Bezeichner als Argumente. Die Funktion legt basierend auf der Verzögerung ein Timeout für den Rückruf fest, prüft aber auch, ob bereits ein Timeout mit derselben eindeutigen ID vorhanden ist. Wenn ja, wird das vorherige Timeout abgebrochen und das neue festgelegt.
Implementierung:
<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>
Verwendung:
Implementieren Sie die Funktion „waitForFinalEvent“ wie folgt in Ihrem Code:
<code class="javascript">$(window).resize(function () { waitForFinalEvent(function(){ alert('Resize...'); //... }, 500, "some unique string"); });</code>
Durch die Bereitstellung einer eindeutigen ID für jeden Rückruf stellt diese Implementierung sicher, dass separate Rückrufe die Timeout-Ereignisse des anderen nicht beeinträchtigen. Daher wird die Funktion erst ausgeführt, nachdem der Größenänderungsvorgang abgeschlossen ist, wodurch Mehrfachauslösungen verhindert werden.
Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass mehrere $(window).resize-Ereignisse ausgelöst werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!