Le problème est que j'ai des ensembles de balises d'entrée créés dynamiquement et que j'ai également une fonction destinée à se déclencher à chaque fois qu'une valeur d'entrée est modifiée.
$('input').on('change', function() {
// Does some stuff and logs the event to the console
});
Toutefois, le .on('change')
ne se déclenche pour aucune entrée créée dynamiquement, uniquement pour les éléments qui étaient présents lors du chargement de la page. Malheureusement, cela me laisse un peu embarrassé car il .on
est censé être le remplacement de .live()
et .delegate()
qui sont tous des wrappers pour .bind()
: /
Quelqu'un d'autre a-t-il eu ce problème ou a-t-il eu connaissance d'une solution?
la source
$(document).on({ change: handleChange }, 'input');
plus la fonctionconst handleChange = (event) => { $(event.target)...
C'est bien d'éviter les ennuyeuxthis
.Utilisez ceci
la source
$('#id')
dans le code au lieu de'#id'
Vous pouvez appliquer n'importe quelle approche:
la source
la source
Juste pour clarifier une confusion potentielle. Cela ne fonctionne que lorsqu'un élément est présent sur le chargement DOM:
Lorsqu'un élément est chargé dynamiquement ultérieurement, vous pouvez utiliser:
la source
la source
Vous pouvez utiliser l'événement 'input', qui se produit lorsqu'un élément reçoit une entrée utilisateur.
documentation de w3
la source
vous pouvez utiliser:
Cela fonctionne avec moi.
la source