Присоедините ваш обработчик событий к document
или любому подходящему родительскому элементу, который не обновляется при обновлении ajax. См. Раздел Делегированные обработчики событий в на () странице документации.
Например, изменить
$('#test_checkbox input').on('click', function() { //this work perfectly
console.log('enter');
if ($(this).is(":checked")) {
alert('checked');
} else {
alert('not checked');
}
});
до
$(document).on('click','#test_checkbox input', function() { //this work perfectly
console.log('enter');
if ($(this).is(":checked")) {
alert('checked');
} else {
alert('not checked');
}
});
Edit:
Согласно предложению @WernerPotgieter прикрепленный слушатель к document
вместо body
. Хотя я добавил пример со слушателем событий, прикрепленным к документу, мы должны избегать чрезмерного использования документа или тела для делегированных событий в больших документах и должны прикреплять слушателя к как можно ближе к целевому элементу для лучшей производительности.