Mon application a ajouté dynamiquement des Dropdowns. L'utilisateur peut en ajouter autant qu'il le souhaite.
J'utilisais traditionnellement la live()
méthode de jQuery pour détecter le moment où l'un de ces Dropdowns était change()
édité:
$('select[name^="income_type_"]').live('change', function() {
alert($(this).val());
});
Depuis jQuery 1.7, j'ai mis à jour ceci pour:
$('select[name^="income_type_"]').on('change', function() {
alert($(this).val());
});
En regardant les documents, cela devrait être parfaitement valide (non?) - mais le gestionnaire d'événements ne se déclenche jamais. Bien sûr, j'ai confirmé que jQuery 1.7 est chargé et fonctionne, etc. Il n'y a aucune erreur dans le journal des erreurs.
Qu'est-ce que je fais mal? Merci!
live
utilise en fait deon
toute façon, donc une réécriture du code hérité pourrait ne pas être nécessaire pour l'instant jusqu'à celive
qu'il soit supprimé, ce qui, je crois, est 1.9. Extrait de la source 1.7.1:live: function( types, data, fn ) {jQuery( this.context ).on( types, this.selector, data, fn ); return this;}
Donc, si l'on ne met pas à niveau une version dans laquelle il alive
disparu, une mise à jour peut ne pas être nécessaire immédiatement pour le code hérité. Pour un nouveau code, il est préférable d'utiliser à laon()
place, comme recommandé. Je pensais juste que cette information pourrait aider quelqu'un d'autre à un moment donné.