webentwicklung-frage-antwort-db.com.de

Objekt hat keine Methode 'live' - jQuery

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

Gibt mir einen Fehler:

Nicht erfasstes TypeError: Objekt [Objekt Objekt] hat keine Methode "live" 

Ich sehe das Problem einfach nicht?

44
reggie

.live() ist eine veraltete Funktion (ab 1.7+) und wird vollständig aus jQuery 1.9+ entfernt.

Sie können stattdessen die Methoden .on() oder .bind() verwenden:

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

122
diggersworld
  1. Wenn der Aufruf von .live() in Ihrem eigenen Code enthalten ist, ändern Sie ihn einfach in .on(). Verwenden Sie dazu die Regeln unter http://api.jquery.com/live .

  2. Wenn sich der Code in einem jQuery-Plugin eines Drittanbieters befindet, verwenden Sie das jQuery Migrate-Plugin, um .live() wiederherzustellen, bis der Autor sein Plugin aktualisiert: https://github.com/jquery/jquery-migrate#readme .

  3. Verwenden Sie auf Produktionsstandorten keine URLs, die auf die "neueste" Version von jQuery verweisen, z. B. http://code.jquery.com/jquery-latest.js oder http://ajax.googleapis.com /ajax/libs/jquery/1/jquery.min.js , da sie automatisch aktualisiert werden, wenn eine neue Version von jQuery veröffentlicht wird und Ihre Website plötzlich beschädigt wird, wenn sie nicht kompatibel ist.

13
Dave Methvin

Siehe auf http://api.jquery.com/live/

alt

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

neu

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

Wenn Sie jQuery 1.7+ verwenden, verwenden Sie on(...) anstelle von live(...).
.__ Überprüfen Sie dies: http://api.jquery.com/on/

3
Learner

Es gibt ein Szenario, in dem weder .on () noch .bind () funktionieren: wenn das Element nicht vorhanden ist, wenn der Ereignishandler hinzugefügt wird. Und genau das tat live ().

3
Jinn

verwende .on

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

Es gibt ein jQuery-Migrations-Plugin (verwenden Sie das) ....... es wird das Problem beheben

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

0
Ketan Thakkar