La mia applicazione ha aggiunto dinamicamente i menu a discesa. L'utente può aggiungerne quanti ne hanno bisogno.
Tradizionalmente utilizzavo il live()metodo di jQuery per rilevare quando è stato editato uno di questi Dropdown change():
$('select[name^="income_type_"]').live('change', function() {
alert($(this).val());
});
A partire da jQuery 1.7, ho aggiornato questo a:
$('select[name^="income_type_"]').on('change', function() {
alert($(this).val());
});
Guardando Docs, dovrebbe essere perfettamente valido (giusto?) - ma il gestore dell'evento non spara mai. Naturalmente, ho confermato che jQuery 1.7 è caricato e in esecuzione, ecc. Non ci sono errori nel registro degli errori.
Che cosa sto facendo di sbagliato? Grazie!
livestia effettivamente usandooncomunque, quindi una riscrittura del codice legacy potrebbe non essere ancora necessaria finolivea quando non verrà rimossa, che credo sia 1.9. Estratto dalla fonte 1.7.1:live: function( types, data, fn ) {jQuery( this.context ).on( types, this.selector, data, fn ); return this;}Quindi, se non si sta eseguendo l'aggiornamento a una versione in cuiliveè sparito, potrebbe non essere necessario un aggiornamento immediato per il codice legacy. Per il nuovo codice fuori rotta usareon()invece è come raccomandato. Ho solo pensato che queste informazioni potrebbero aiutare qualcun altro a un certo punto.