it-swarm.com.de

TypeError: $ (...). Live ist keine Funktion

Ich habe ein Problem mit jquery 1.9.1. Ich habe es gesucht, aber das löst mein Problem nicht.

    $('.sm2_expander').live('click', function() {
    $(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
    return false;
});

Jeder sagte, dass "on" -Funktion verwendet wird, aber diesmal funktioniert mein Code nie.

$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); 

Bearbeiten: Hier ist meine Verwendungsseite: ziehbarer Link

8
Enes Pekkaya

In Ihrem Beispiel haben Sie den Selektor a.offsite verwendet, aber es gibt keine Elemente, die diesem Selektor auf Ihrer Seite entsprechen. Das könnte der Grund sein, warum es nicht funktioniert.

$(function(){
    $(document).on('click', '.sm2_expander', function(){
        alert('bye');
        $(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
    })
})

Ich denke, du kannst das verkürzen

$(function(){
    $(document).on('click', '.sm2_expander', function(){
        $(this).closest('li').toggleClass('sm2_liOpen sm2_liClosed');
    })
})
14
Arun P Johny

.live () wurde in jQuery 1.3 eingeführt und funktioniert daher nicht mit früheren Versionen.

.live () wurde seit jQuery 1.7 ebenfalls nicht mehr unterstützt.

Die Alternativen sind .on () und .delegate ()

Siehe verwandte Frage jQuery 1.9 .live () ist keine Funktion zum Migrieren von vorhandenem Code.

Ich habe "jquery-1.8.3.min.js" verwendet und mein Problem gelöst.

7
Ipsita Rout

Probieren Sie folgendes aus: -http://jsfiddle.net/trdb9/

JS: -

$(document).on("click", "a.offsite", function () {
    alert("Goodbye!");
});

HTML: -

<a class="offsite">Click Me</a>
6
Aditya Singh

Sie müssen jquery-migrate-1.1.1.min.js oder höher verwenden. Ich denke, es gibt große Veränderungen in jquery, eine davon ist, dass jeder, der sich auf .live verlässt, neue Wege sucht. 

Versuchen Sie es trotzdem und es sollte funktionieren.

3
The Lone Coder

Versuchen Sie, live durch on in Ihrem Code zu ersetzen.

 $('.sm2_expander').on('click', function() {
    $(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
    return false;
});
2
Mohammad Adil

Wenn Sie eine Live-Site haben, empfehle ich die Verwendung von jQuery Migrate

https://github.com/jquery/jquery-migrate/

Es werden automatisch die veralteten, aber benötigten Funktionen hinzugefügt.

0
Tofeeq