web-dev-qa-db-fra.com

L'objet n'a pas de méthode 'live' - jQuery

<script>
$(document).ready(function(){
    $('.delete').live('click', function(e){
        alert('delete');
        e.preventDefault();
    });
});
</script>
<a href='#' id='_1' class='delete'>Delete</a>

Me donne une erreur:

Uncaught TypeError: Object [objet Object] n'a pas de méthode 'en direct' 

Je ne vois tout simplement pas le problème?

44
reggie

.live() est une fonction obsolète (à partir de 1.7+) et complètement supprimée de jQuery 1.9+.

Vous pouvez plutôt utiliser les méthodes .on() ou .bind():

http://api.jquery.com/on/
http://api.jquery.com/bind/

122
diggersworld
  1. Si l'appel de .live() se trouve dans votre propre code, remplacez-le simplement par .on() en suivant les règles indiquées à http://api.jquery.com/live .

  2. Si le code provient d'un plug-in jQuery tiers, utilisez le plug-in jQuery Migrate pour restaurer .live() jusqu'à ce que l'auteur mette à jour leur plug-in: https://github.com/jquery/jquery-migrate#readme .

  3. Sur les sites de production, n'utilisez pas d'URL faisant référence à la "dernière" version de jQuery, telle que http://code.jquery.com/jquery-latest.js ou http://ajax.googleapis.com. /ajax/libs/jquery/1/jquery.min.js car ils seront automatiquement mis à jour lorsqu’une nouvelle version de jQuery sera publiée et votre site s’arrêtera brusquement s’il n’est pas compatible.

13
Dave Methvin

Voir sur http://api.jquery.com/live/

vieux

$("a.offsite").live("click", function(){ alert("Goodbye!"); });                // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); });  // jQuery 1.4.3+

nouveau

$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });        // jQuery 1.7+
3
user2466160

Si vous utilisez jQuery 1.7+, utilisez on(...) au lieu de live(...).
Cochez cette case: http://api.jquery.com/on/

3
Learner

Il existe un scénario où ni .on (), ni .bind () ne fonctionnent pas: lorsque l'élément n'existe pas lorsque le gestionnaire d'événements est ajouté. Et c'était ce que live () a fait.

3
Jinn

utiliser sur

<script>
$(document).ready(function(){
    $('.delete').on('click', function(e){
        alert('delete');
        e.preventDefault();
    });
});
</script>
1
GDW

Il y a un plugin de migration jQuery (utilisez ça) ....... il va résoudre le problème

ASP.NET MVC ajax-unobtrusive + jQuery 1.9 http://bugs.jquery.com/ticket/13220

0
Ketan Thakkar