278 votes

.live() jQuery 1.9 n’est pas une fonction

J’ai récemment mis à jour jQuery de 1,8 à 2,1. Tout à coup, j’ai découvert que le cesse de fonctionner. J’obtiens l’erreur .

Y a-t-il une méthode que je peux utiliser à la place de `` ?

585voto

Samuel Liew Points 17275

jQuery .live() a été supprimée dans la version 1.9 partir.

Cela signifie que si vous mettez à niveau à partir de la version 1.8 et versions antérieures, vous remarquerez que les choses se rompre si vous ne suivez pas le guide de migration ci-dessous. Vous ne devez pas simplement remplacer .live() avec .on()!


A lire avant de commencer à faire une recherche et remplacer:

Pour rapide/correctifs à chaud sur un site en direct, ne pas simplement remplacer le mot-clé live avec on,
comme les paramètres sont différents!

.live(events, function)

doivent correspondre à:

.on(eventType, selector, function)

Le sélecteur est très important! Si vous n'avez pas besoin de l'utiliser pour une raison quelconque, il null.


La Migration De L'Exemple 1:

avant:

$('#mainmenu a').live('click', function)

après, vous déplacez l'élément enfant (a) à l' .on() selector:

$('#mainmenu').on('click', 'a', function)

La Migration Exemple 2:

avant:

$('.myButton').live('click', function)

après, que vous déplacez l'élément (.myButton) à l' .on() sélecteur, et de trouver le plus proche parent de l'élément (de préférence avec un ID):

$('#parentElement').on('click', '.myButton', function)

Si vous ne savez pas quoi mettre comme parent, body fonctionne toujours:

$('body').on('click', '.myButton', function)

Voir aussi:

17voto

Sirko Points 32515

La documentation de l'API de jQuery listes live() comme obsolète depuis la version 1.7 et supprimé de la version 1.9: lien.

version obsolète: 1.7, supprimé: 1.9

En outre, il est indiqué:

Comme de jQuery 1.7, l' .live() la méthode est obsolète. Utiliser .sur() pour fixer les gestionnaires d'événements. Les utilisateurs des anciennes versions de jQuery doit utiliser .délégué() de préférence .live()

7voto

koopajah Points 5165

.Live() a été désapprouvée et a maintenant été retirés de jQuery 1.9 vous devez utiliser .on()

6voto

matino Points 7349

.séjournez a été supprimé dans la 1.9, veuillez consulter le guide de mise à niveau : http://jquery.com/upgrade-guide/1.9/#live-removed

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X