@razrab228
html, люблю больше php.

Не работате .on('change') на добавленный через append input?

Код с добавление записи, в которой есть input:

$('.button_newlesson').click(function(){
                $(function() {
                    var newElems = $("<div class='title' data-id='"+tems_mass_id+"' style='display: flex'></div>")
                    .append('<div class="i0">'+ptp_tema_number+'</div>')
                    .append('<div class="i1" style="width: 45%; padding: 4px 0px;"><input class="input_ptp_tema" type="text"></div>')
                    .append('<div class="i2" style="width: 45%; padding: 4px 0px;"><input class="input_ptp_tema" type="text"></div>')
                    .append('<div class="i6">&nbsp;</div>')
                    .show()
                    $('.table_body').append(newElems);
                });
            })


и код, если input будет изменяться:
$('.input_ptp_tema').on('change', function() {
                alert(123);
            })

но он не работает. В чём проблема??
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Надо «делегировать» — слушать события на общем родителе. Тогда свеже-созданные элементы тоже попадут в обработку – события на них «пузырьком» поднимаются вверх, там-то их и поймают.

$('.table_body').on('change', '.input_ptp_tema', function() {


См. Direct and delegated event handlers в документации к .on()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы