2013-04-25 17 views
16

otrzymuję ten błąd:Uncaught TypeError: Object [object Object] ma metodę 'na żywo'

Uncaught TypeError: Object [object Object] has no method 'live' 

Od tego kodu JavaScript i jQuery:

init: function(options) { 
    var form = this; 
    if (!form.data('jqv') || form.data('jqv') == null) { 
    options = methods._saveOptions(form, options); 
    // bind all formError elements to close on click 
    $(".formError").live("click", function() { 

     //Getting error here: 
     //Uncaught TypeError: Object [object Object] has no method 'live' 

    }); 
    } 
    return this; 
}; 

Dlaczego metoda live brakujący?

+3

Cóż, '.live()' jest przestarzałe; być może już go nie ma :) –

+4

spróbuj zmienić go na '$ (document) .on ('click', '.formError', function() {...});' – jammypeach

+0

'.live' zniknie z wersji 1.9 , Myślę: http://jsfiddle.net/6mBsB/ – apsillers

Odpowiedz

7

Według the documentation, .live() została wycofana od 1,7 do usunięto na 1,9.

Musisz albo zmienić wersję jQuery, albo użyć nowszej wersji wtyczki sprawdzania poprawności, jeśli jest dostępna.

32

.live był usunięte w jQuery 1.9

patrz Dokumentacja: http://api.jquery.com/live/


Spróbuj użyć .on zamiast:

$(document).on('click', '.formError', function(){ 
    //your event function 
}); 
+0

Dzięki, ale to właśnie złamało go jeszcze bardziej, teraz mam dwa kolejne błędy i nadal nie działa. – Francesca

+0

@Francesca, co to jest zepsute? Czy potrafisz zrobić jsfiddle? – Neal

+0

@Francesca Czy te dwa dodatkowe błędy mogły oznaczać, że faktycznie minęły tę jedną linię i przeszły dalej do większej liczby błędów, które istniały, ale nie są związane z tym? Więcej błędów po naprawieniu nie zawsze jest złą rzeczą, oznacza to tylko, że masz więcej informacji na temat problemu i, oczywiście, więcej błędów do naprawienia. –

1

Istnieje biblioteka Migrate który pomaga przejście z poprzednich wersji jQuery podczas aktualizacji: jQuery migrate plugin. Musisz umieścić go w swoim źródle po jQuery. Od strony jQuery:

The uncompressed development version of the jQuery Migrate plugin includes console log output to warn when specific deprecated and/or removed features are being used. This makes it valuable as a migration debugging tool for finding and remediating issues in existing jQuery code and plugins. It can be used for its diagnostics with versions of jQuery core all the way back to 1.6.4.

The compressed version of the plugin does not generate any log output, and can be used on production sites when jQuery 1.9 or higher is desired but older incompatible jQuery code or plugins must also be used. Ideally this would only be used as a short-term solution, but that's a decision for you to make.

4

.live() removed

Sposób .live() została zastąpiona od jQuery 1,7 i usunięto z 1.9. Zalecamy uaktualnienie kodu, aby zamiast tego użyć metody .on().

Aby dokładnie dopasować

$("a.foo").live("click", fn) 

Należy napisać

$(document).on("click", "a.foo", fn). 

Aby uzyskać więcej informacji, zobacz .on() documentation. W międzyczasie wtyczka jQuery Migrate może być dodatkowo użyta do przywrócenia funkcji .live().

Powiązane problemy