Ich habe Ereignishandler entsprechend ihrer Klassennamen im letzten Projekt definiert, an dem ich gerade arbeite.
für ex. Alle Elemente mit dem Klassennamen "foo" sollten auf Änderungsereignisse in einer bestimmten Weise reagieren. und alle Elemente mit dem Klassennamen "bar" sollten auf andere Weise antworten.
Nun fallen einige meiner Elemente unter beide Klassen, d. h. class="foo bar", und sie sollten auf beide Arten antworten. Derzeit wird nur eine der Event-Handler-Funktionen aufgerufen.
Wie kann ich beide Antworten gleichzeitig ausführen lassen?
Es hängt davon ab, wie Sie die Ereignisse binden. Wenn Sie sie über jQuery binden und die Handler nicht über x.onchange = function() { ... }
überschreiben, werden alle gebundenen Event-Handler ausgeführt. Dies liegt daran, dass jQuery Warteschlangen die Ereignishandler statt die vorherigen Bindungen überschreiben.
Überprüfen Sie fiddle
, um zu sehen, dass mehrere Ereignisse ausgelöst werden :
und
Überprüfen Sie diese fiddle
, um zu sehen, wie die Ereignisbehandlungsroutinen überschrieben werden, sodass nur der zuletzt gebundene -Befehlsroutine ausgelöst wird
Was Sie wollen, ist eine Variation des "Verhaltens" -Musters.
Sie können Ereignisse auf Elementen mit bestimmten Klassen oder anderen Attributen automatisch verarbeiten.
Die übliche Implementierung besteht darin, Ereignisse auf "Dokument" zu hören und dann, durch event.target, die Aktion zu definieren.
Zum Beispiel: fiddle ( Ссылка )
%Vor%Hier behandeln Sie mit der Funktion alle Ereignisse auf Elementen mit Klassen Ihrer Wahl. Wenn Sie weitere Ereignisse oder Klassen hinzufügen möchten, fügen Sie sie einfach in die "Ein" -Liste ein.
Tags und Links javascript jquery events event-handling