Я добавил поле ввода флажка из JavaScript. после этого мне нужно отловить событие клика в этом поле. Но я не мог. Я попытался с этими инструкциями:
- Добавить в код jquery и функцию щелчка?
- jQuery 1.9 .live () не является функцией.

Это мой код

var htmlData='<input type="checkbox" name="is_pay[]" class="is_pay">';
$('.container').append(htmlData);

$('.is_pay').on('click', function(){
        alert('hi');
});
0
suganthan sivananthan 2 Май 2019 в 07:39

3 ответа

Лучший ответ

Поскольку этот элемент не существует при запуске сценария, поэтому прислушайтесь к клику на .container:

var htmlData='<input type="checkbox" name="is_pay[]" class="is_pay">';
$('.container').append(htmlData);

$(".container").on("click", ".is_pay", function() {
    alert("hi");
});
2
Jack Bashford 2 Май 2019 в 04:41

Обработчик событий будет работать только в том случае, если на странице существует элемент, поэтому ваш обработчик щелчков скрипта не работает, поскольку вы добавляете флажок динамически.

Если какой-либо новый элемент внедряется в страницу динамически, тогда используйте делегированное событие, чтобы присоединить обработчик события. Замените обработчик кликов следующим кодом

$("document").on("click", ".is_pay", function() {
    alert("hi");
});
0
UnmeshD 2 Май 2019 в 04:52

Вы можете просто справиться с .click ()

var htmlData='<input type="checkbox" name="is_pay[]" class="is_pay">';
$('.container').append(htmlData);

$('.is_pay').click(function(event) {
   alert('hi');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='container'></div>
0
Parth Raval 2 Май 2019 в 04:59