Problem polega na tym, że mam kilka dynamicznie tworzonych zestawów znaczników wejściowych, a także mam funkcję, która ma wyzwalać za każdym razem, gdy zmieniana jest wartość wejściowa.
$('input').on('change', function() {
// Does some stuff and logs the event to the console
});
Jednak .on('change')
nie jest wyzwalany dla żadnych dynamicznie utworzonych danych wejściowych, tylko dla elementów, które były obecne podczas ładowania strony. Niestety to pozostawia mnie w pewnym kłopocie, ponieważ .on
ma być zamiennikiem, .live()
a .delegate()
wszystko to jest opakowaniem dla .bind()
: /
Czy ktoś inny miał ten problem lub zna rozwiązanie?
źródło
$(document).on({ change: handleChange }, 'input');
plus funkcjaconst handleChange = (event) => { $(event.target)...
Miło jest uniknąć kłopotówthis
.Użyj tego
źródło
$('#id')
w kodzie zamiast'#id'
Możesz zastosować dowolne podejście:
źródło
źródło
Tylko po to, aby wyjaśnić potencjalne zamieszanie. Działa to tylko wtedy, gdy element jest obecny podczas ładowania DOM:
Gdy element jest później dynamicznie ładowany, możesz użyć:
źródło
źródło
Możesz użyć zdarzenia „input”, które występuje, gdy element otrzymuje dane wejściowe użytkownika.
dokumentacja z w3
źródło
możesz użyć:
Działa ze mną.
źródło