Mi aplicación ha agregado dinámicamente menús desplegables. El usuario puede agregar tantos como sea necesario.
Tradicionalmente estaba usando el live()
método de jQuery para detectar cuándo se editó uno de estos menús desplegables change()
:
$('select[name^="income_type_"]').live('change', function() {
alert($(this).val());
});
A partir de jQuery 1.7, he actualizado esto a:
$('select[name^="income_type_"]').on('change', function() {
alert($(this).val());
});
Mirando los documentos, eso debería ser perfectamente válido (¿verdad?), Pero el controlador de eventos nunca se activa. Por supuesto, he confirmado que jQuery 1.7 está cargado y ejecutándose, etc. No hay errores en el registro de errores.
¿Qué estoy haciendo mal? ¡Gracias!
live
realidad lo está utilizando deon
todos modos, por lo que es posible que aún no se necesite volver a escribir el código heredado hastalive
que se elimine, lo que creo que es 1.9. Extracto de la fuente 1.7.1: por lolive: function( types, data, fn ) {jQuery( this.context ).on( types, this.selector, data, fn ); return this;}
tanto, si uno no está actualizando a una versión que ya nolive
existe, es posible que no se necesite una actualización inmediata para el código heredado. Para el nuevo código, por supuesto, el uso en suon()
lugar es el recomendado. Solo pensé que esta información podría ayudar a alguien más en algún momento.