2013-02-05 15 views
26

Użyłem live() dla wygenerowanych stron i ramek. Ale w jQuery 1.9 ta funkcja jest przestarzała i nie działa.jQuery - jak używać metody "on()" zamiast "live()"?

Używam on() zamiast , ale ta metoda działa jednorazowo i nie działa w ramkach.

Mój kod wygląda następująco:

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

Jakie jest rozwiązanie?

+6

[Czytaj dokumenty] (http://api.jquery.com/on/). Deleguj obsługę zdarzeń wyżej w drzewie DOM. –

+6

[Dokumentacja dla '.live()'] (http://api.jquery.com/live/) zawiera również sekcję dotyczącą konwersji z '.live()' na '.on()'. –

Odpowiedz

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

się wybrane selektor element teraz przekazywane przez parametrów funkcyjnych .on() i poprzednim selektor należy wymienić najbliższego selektora macierzystego korzystnie z identyfikatorem. Jeśli nie wiesz, który selektor rodzica ma być używany, działa też body, ale jest mniej wydajny.

zobaczyć jQuery 1.9 .live() is not a function na temat migracji istniejącego kodu.

+0

Dziękuję za tę użyteczną odpowiedź, pracował dla mnie. – Farhad

+0

thanx ... dobra odpowiedź ... –

Powiązane problemy