Es bindet das Ereignis jedoch nicht an später erstellte Elemente on() Berufung. Also ist es wirklich besser live() Methode ?
Übersehe ich etwas?
mögliches Duplikat von jQuery 1.7 – Live() in on() umwandeln
– Felix Klinge
24. April 2012 um 9:44 Uhr
Wenn Sie in der von Ihnen verlinkten Dokumentation etwas weiter lesen (dritter Absatz): „Umschreiben der .live() Methode in Bezug auf ihre Nachfolger ist einfach; Dies sind Vorlagen für äquivalente Aufrufe für alle drei Methoden zum Anhängen von Ereignissen: $(document).on(events, selector, data, handler); // jQuery 1.7+“.
– Felix Klinge
24. April 2012 um 9:45 Uhr
@FelixKling Danke, vorher nicht gefunden.
– hsz
24. April 2012 um 9:45 Uhr
Schön, dass Sie das gefragt haben. Es wird häufig vorgeschlagen, dass sie gleich sind, wenn sie es wirklich nicht sind (und es ist meiner Meinung nach eine ärgerliche Änderung).
– Iain Collins
29. Mai 2013 um 20:01 Uhr
Sergi Papaseit
Benutzen on in gleicher Weise wie live verwendet, um zu arbeiten, müssen Sie es wie folgt verwenden:
So binden Sie die on Handler zum document sich selbst (oder eigentlich das Containerelement, in dem die neuen Elemente “erscheinen” — Danke an @devnull69 für die Klarstellung), dann übergeben Sie ihm einen Ereignistyp und den Selektor.
Auf halbem Weg finden Sie einige Beispiele live Dokumentationsseite.
Es muss nicht unbedingt sein $(document). Der erste Selektor kann ein beliebiges bereits vorhandenes Eltern-/Containerelement des dynamisch erstellten Elements sein
– devnull69
24. April 2012 um 9:48 Uhr
Ok, stimmt, solange die neuen Elemente in diesem übergeordneten Element/Container erscheinen. – Ich habe meine Antwort aktualisiert; Danke.
– Sergi Papaseit
24. April 2012 um 9:51 Uhr
In der Tat sollten Sie versuchen, die Verwendung zu vermeiden $(document).on(...) in diesen Fällen, da dies in der Vergangenheit zu Problemen mit Safari-Browsern geführt hat click Ereignisse sprudelten nicht bis zu document: stackoverflow.com/questions/10165141/…
– EleventyOne
13. Januar 2014 um 8:57 Uhr
Wenn der Körper leer geladen wird und dann alles dynamisch geladen wird, scheint mir die ‘on()’-Funktion immer problematisch zu sein, während die ‘live()’ weiterhin gut funktioniert. Die ‘on()’-Funktion ist ein absolutes Biest, wenn alles dynamisch ist! In einem solchen Fall funktioniert es im Gegensatz zu dem, was @devnull69 oben angegeben hat, nur, wenn ich ‘$(document)’ verwende.
– Jeach
3. März 2014 um 5:22 Uhr
… was nicht im Widerspruch zu dem steht, was ich oben gesagt habe 🙂
mögliches Duplikat von jQuery 1.7 – Live() in on() umwandeln
– Felix Klinge
24. April 2012 um 9:44 Uhr
Wenn Sie in der von Ihnen verlinkten Dokumentation etwas weiter lesen (dritter Absatz): „Umschreiben der
.live()
Methode in Bezug auf ihre Nachfolger ist einfach; Dies sind Vorlagen für äquivalente Aufrufe für alle drei Methoden zum Anhängen von Ereignissen:$(document).on(events, selector, data, handler); // jQuery 1.7+
“.– Felix Klinge
24. April 2012 um 9:45 Uhr
@FelixKling Danke, vorher nicht gefunden.
– hsz
24. April 2012 um 9:45 Uhr
Schön, dass Sie das gefragt haben. Es wird häufig vorgeschlagen, dass sie gleich sind, wenn sie es wirklich nicht sind (und es ist meiner Meinung nach eine ärgerliche Änderung).
– Iain Collins
29. Mai 2013 um 20:01 Uhr