jQuery .live()
wurde ab Version 1.9 entfernt.
Das heißt, wenn Sie ein Upgrade von Version 1.8 und früher durchführen, werden Sie feststellen, dass Probleme auftreten, wenn Sie die unten stehende Migrationsanleitung nicht befolgen. Sie dürfen nicht einfach ersetzen .live()
mit .on()
!
Lesen Sie, bevor Sie mit dem Suchen und Ersetzen beginnen:
Ersetzen Sie für schnelle / Hotfixes auf einer Live-Site nicht nur das Schlüsselwort live
durch on
,
da die Parameter unterschiedlich sind !
.live(events, function)
sollte zuordnen zu:
.on(eventType, selector, function)
Der (Kinder-) Selektor ist sehr wichtig! Wenn Sie dies aus irgendeinem Grund nicht verwenden müssen, setzen Sie es auf null
.
Migrationsbeispiel 1:
Vor:
$('#mainmenu a').live('click', function)
Danach verschieben Sie das untergeordnete Element ( a
) in den .on()
Selektor:
$('#mainmenu').on('click', 'a', function)
Migrationsbeispiel 2:
Vor:
$('.myButton').live('click', function)
Danach verschieben Sie das Element ( .myButton
) in den .on()
Selektor und suchen das nächste übergeordnete Element (vorzugsweise mit einer ID):
$('#parentElement').on('click', '.myButton', function)
Wenn Sie nicht wissen, was Sie als Eltern setzen sollen, body
funktioniert dies immer:
$('body').on('click', '.myButton', function)
Siehe auch:
return this;
am Ende der Funktion ein enthalten, um die Verkettungsfähigkeit zu erhaltenIn der Dokumentation zur jQuery-API ist ab
live()
Version 1.7 veraltet und ab Version 1.9 entfernt: link .Darüber hinaus heißt es:
quelle
Weiterleitungsport von
.live()
für jQuery> = 1.9 Vermeidet das Refactoring von JS-Abhängigkeiten von.live()
Verwendet optimierten DOM- Auswahlkontextquelle
.live () war veraltet und wurde jetzt aus jQuery 1.9 entfernt. Sie sollten .on () verwenden.
quelle
.live wurde in 1.9 entfernt. Weitere Informationen finden Sie im Upgrade-Handbuch: http://jquery.com/upgrade-guide/1.9/#live-removed
quelle
Eine sehr einfache Lösung, bei der Sie Ihren Code nicht ändern müssen. Fügen Sie einfach das JQuery-Migrationsskript hinzu und laden Sie es hier herunter. Https://github.com/jquery/jquery-migrate/
Es bietet veraltete, aber benötigte Funktionen wie "live", "browser" usw.
quelle
Ich neige dazu, die .on () -Syntax nicht zu verwenden, wenn dies nicht erforderlich ist. Sie können beispielsweise einfacher migrieren:
alt:
Neu:
Hier ist eine Liste der gültigen Ereignishandler: https://api.jquery.com/category/forms/
quelle
Wenn Sie zufällig das jQuery-Juwel von Ruby on Rails verwenden
jquery-rails
und aus irgendeinem Grund Ihren Legacy-Code nicht umgestalten können, ist die letzte Version, die noch unterstützt wird,2.1.3
und Sie können ihn mithilfe der folgenden Syntax sperrenGemfile
:Anschließend können Sie den folgenden Befehl zum Aktualisieren verwenden:
Ich hoffe, dass dies anderen hilft, die mit einem ähnlichen Problem konfrontiert sind.
quelle