2013-02-05 8 views
26

Ich verwendete live() für generierte Seiten und Frames. Aber in jQuery 1.9 ist diese Funktion veraltet und funktioniert nicht.jQuery - Wie verwendet man die "on()" Methode anstelle von "live()"?

Ich benutze on() anstelle von live(), aber diese Methode funktioniert für eine Zeit und funktioniert nicht in Frames.

sieht Ihr Code wie folgt aus:

$("#element").live('click',function(){ 
    $("#my").html(result); 
    }); 

Was ist die Lösung?

+6

[Lesen Sie die Dokumentation] (http://api.jquery.com/on/). Delegieren Sie den Ereignishandler höher in der DOM-Struktur. –

+6

Die [Dokumentation für '.live()'] (http://api.jquery.com/live/) enthält auch einen Abschnitt speziell zum Konvertieren von '.live()' in '.on()'. –

Antwort

68
$('body').on('click', '#element', function(){ 
    $("#my").html(result); 
}); 

Die geklickt Elementselektoreinrichtung wird nun durch die .on() Funktion übergebenen Parameter und der vorherige Selektor sollte mit dem nächsten übergeordneten Selektor vorzugsweise mit einem ID ersetzt werden. Wenn Sie nicht wissen, welcher Elternselektor zu verwenden ist, funktioniert body auch, ist aber weniger effizient.

siehe jQuery 1.9 .live() is not a function zur Migration von vorhandenem Code.

+0

Vielen Dank für diese nützliche Antwort, arbeitete für mich. – Farhad

+0

danke ... nette Antwort ... –

Verwandte Themen