Moja aplikacja dynamicznie dodała menu rozwijane. Użytkownik może dodać tyle, ile potrzebuje.
Tradycyjnie używałem live()
metody jQuery do wykrywania, kiedy edowano jedno z tych rozwijanych menu change()
:
$('select[name^="income_type_"]').live('change', function() {
alert($(this).val());
});
Od jQuery 1.7 zaktualizowałem to do:
$('select[name^="income_type_"]').on('change', function() {
alert($(this).val());
});
Patrząc na Dokumenty, powinno to być całkowicie poprawne (prawda?) - ale moduł obsługi zdarzeń nigdy nie odpala. Oczywiście potwierdziłem, że jQuery 1.7 jest załadowany i działa itp. W dzienniku błędów nie ma błędów.
Co ja robię źle? Dzięki!
live
tak używaon
, więc ponowne zapisanie starszego kodu może nie być jeszcze potrzebne, dopókilive
nie zostanie usunięte, co moim zdaniem wynosi 1,9. Fragment źródła 1.7.1:live: function( types, data, fn ) {jQuery( this.context ).on( types, this.selector, data, fn ); return this;}
Jeśli więc nie przeprowadzasz aktualizacji do wersji, w którejlive
już nie ma aktualizacji, aktualizacja starszego kodu może nie być potrzebna od razu. W przypadku nowego kodu użycie oczywiścieon()
jest zamiast tego zalecane. Pomyślałem, że ta informacja może pomóc komuś innemu na pewnym etapie.