Meine Anwendung hat Dropdowns dynamisch hinzugefügt. Der Benutzer kann so viele hinzufügen, wie er benötigt.
Ich habe traditionell die live()
Methode von jQuery verwendet, um festzustellen, wann eines dieser Dropdowns bearbeitet wurde change()
:
$('select[name^="income_type_"]').live('change', function() {
alert($(this).val());
});
Ab jQuery 1.7 habe ich Folgendes aktualisiert:
$('select[name^="income_type_"]').on('change', function() {
alert($(this).val());
});
Wenn Sie sich die Dokumente ansehen, sollte dies absolut gültig sein (richtig?) - aber der Ereignishandler wird niemals ausgelöst. Natürlich habe ich bestätigt, dass jQuery 1.7 geladen ist und ausgeführt wird usw. Das Fehlerprotokoll enthält keine Fehler.
Was mache ich falsch? Vielen Dank!
live
tatsächlichon
sowieso verwendet wird, sodass ein erneutes Schreiben von Legacy-Code möglicherweise noch nicht erforderlich ist, bislive
es entfernt wird, was meiner Meinung nach 1,9 ist. Auszug aus der Quelle 1.7.1:live: function( types, data, fn ) {jQuery( this.context ).on( types, this.selector, data, fn ); return this;}
Wenn also kein Upgrade auf eine Version durchgeführt wird, in der keine Version mehr vorhandenlive
ist, ist möglicherweise kein sofortiges Update für Legacy-Code erforderlich. Für neuen Code außerhalb des Kurses wirdon()
stattdessen empfohlen. Ich dachte nur, diese Informationen könnten irgendwann jemand anderem helfen.