Was ist die beste übung, um nicht zu überschreiben gebundenen Funktionen-Fenster.onresize?
Wie viel ich Grabe in JavaScript, fragte ich mich, dass viel. Zum Beispiel haben wir window.onresize
event-handler, und wenn ich sage:
window.onresize = resize;
function resize()
{
console.log("resize event detected!");
}
Wäre das nicht, töten Sie alle anderen Funktionen, die mit der gleichen Veranstaltung und melden Sie sich einfach meine Nachricht in der Konsole?
Wenn ja, ich denke, es sollte ein weiterer Melder die sagt mir über Fenster resize-Ereignis - oder ein workaround vielleicht - ohne überschreiben von Funktionen, die gebunden sind, auf dasselbe Ereignis.
Oder bin ich Total verwirrt durch seine Nutzung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie das alte onresize-Funktion und rufen, dass entweder vor oder nach Ihre custom resize-Funktion. Ein Beispiel, das sollte funktionieren, wäre so etwas wie dieses:
Diese Methode kann Probleme haben, wenn es mehrere onresize Funktionen. Sie könnten die alte onresize-Funktion, die als Teil einer Verschluss-und rufen die alte, nachdem Sie Ihre Funktion.
Beim Aufruf addResizeEvent, übergeben Sie es eine Funktion, die Sie registrieren möchten. Es nimmt das alte resize-Funktion und speichert es als oldResize. Bei der Größe passiert, es wird die Funktion aufrufen und dann aufrufen, das alte resize-Funktion. Sie sollten in der Lage sein, um hinzuzufügen, wie viele Anrufe, wie Sie möchten.
In diesem Beispiel, wenn ein Fenster ändert, wird es call bar, dann foo, dann, was gespeichert wurde, im Fenster.Größe ändern (wenn es etwas).
Buddy
Dank 🙂Anstatt Sie zu ersetzen eine solche catch-all-handler, Sie sollten nur hinzufügen eine DOM-2 Hörer wie diese:
oder in mehr details:
Einer Weise zu tun, es ist so:
Oder Sie können etwas wie jQuery die wraps all das Zeug in ein viel einfacheres Konstrukt:
Automatisch verarbeitet mehrere Handler und Sachen für Sie.