jQuery .live()
a été supprimé à partir de la version 1.9.
Cela signifie que si vous effectuez une mise à niveau à partir de la version 1.8 et antérieure, vous remarquerez que les choses se cassent si vous ne suivez pas le guide de migration ci-dessous. Vous ne devez pas simplement remplacer .live()
par .on()
!
Lisez avant de commencer une recherche et remplacez:
Pour les correctifs rapides / à chaud sur un site en direct, ne remplacez pas simplement le mot-clé live
par on
,
car les paramètres sont différents !
.live(events, function)
doit correspondre à:
.on(eventType, selector, function)
Le sélecteur (enfant) est très important! Si vous n'avez pas besoin de l'utiliser pour une raison quelconque, réglez-le sur null
.
Exemple de migration 1:
avant:
$('#mainmenu a').live('click', function)
après, vous déplacez l'élément enfant ( a
) vers le .on()
sélecteur:
$('#mainmenu').on('click', 'a', function)
Exemple de migration 2:
avant:
$('.myButton').live('click', function)
après, vous déplacez l'élément ( .myButton
) vers le .on()
sélecteur, et trouvez l'élément parent le plus proche (de préférence avec un ID):
$('#parentElement').on('click', '.myButton', function)
Si vous ne savez pas quoi mettre en tant que parent, body
fonctionne toujours:
$('body').on('click', '.myButton', function)
Voir également:
return this;
à la fin de la fonction afin de préserver la capacité de chaînageLa documentation de l'API jQuery répertorie
live()
les éléments obsolètes à partir de la version 1.7 et supprimés à partir de la version 1.9: lien .En outre, il déclare:
la source
Port avant de
.live()
pour jQuery> = 1.9 Évite de refactoriser les dépendances JS sur.live()
Utilise un contexte de sélecteur DOM optimiséla source
.live () était obsolète et a maintenant été supprimé de jQuery 1.9 Vous devez utiliser .on ()
la source
.live a été supprimé en 1.9, veuillez consulter le guide de mise à niveau: http://jquery.com/upgrade-guide/1.9/#live-removed
la source
Un correctif très simple qui n'a pas besoin de changer votre code, ajoutez simplement un script de migration jquery, téléchargez ici https://github.com/jquery/jquery-migrate/
Il fournit des fonctions obsolètes mais nécessaires comme "live", "navigateur", etc.
la source
J'ai tendance à ne pas utiliser la syntaxe .on (), si ce n'est pas nécessaire. Par exemple, vous pouvez migrer plus facilement comme ceci:
vieux:
Nouveau:
Voici une liste de gestionnaires d'événements valides: https://api.jquery.com/category/forms/
la source
Si vous utilisez la gemme jQuery de Ruby on Rails
jquery-rails
et pour une raison quelconque, vous ne pouvez pas refactoriser votre code hérité, la dernière version qui le prend toujours en charge est2.1.3
et vous pouvez le verrouiller en utilisant la syntaxe suivante sur votreGemfile
:alors vous pouvez utiliser la commande suivante pour mettre à jour:
J'espère que cela aidera d'autres personnes confrontées à un problème similaire.
la source