O problema é que eu tenho alguns conjuntos de tags de entrada criados dinamicamente e também tenho uma função que é acionada sempre que um valor de entrada é alterado.
$('input').on('change', function() {
// Does some stuff and logs the event to the console
});
No entanto, isso .on('change')
não é acionado para nenhuma entrada criada dinamicamente, apenas para itens presentes quando a página foi carregada. Infelizmente, isso me deixa um pouco confuso, pois .on
serve para substituir .live()
e .delegate()
todos os que são invólucros para .bind()
: /
Alguém mais teve esse problema ou conhece uma solução?
fonte
$(document).on({ change: handleChange }, 'input');
mais a funçãoconst handleChange = (event) => { $(event.target)...
É bom evitar problemasthis
.Usa isto
fonte
$('#id')
no código em vez de'#id'
Você pode aplicar qualquer abordagem:
fonte
fonte
Apenas para esclarecer alguma confusão em potencial. Isso funciona apenas quando um elemento está presente no carregamento do DOM:
Quando um elemento é carregado dinamicamente mais tarde, você pode usar:
fonte
fonte
Você pode usar o evento 'input', que ocorre quando um elemento obtém entrada do usuário.
documentação da w3
fonte
você pode usar:
Isso funciona comigo.
fonte