我有一个使用AJAX检索某些数据的EJS页面。加载数据后,我想将某些内容附加到div。在附加内容中,有一些复选框使用以下脚本:
<script>
$('#selectall').change(function () {
$('.checkbox').prop('checked', this.checked).trigger('change');
});
</script>
这是我的ajax:
$.ajax({
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json',
url: 'http://localhost:3000/mytableajax',
success: function(result) {
//result is printed, everything is retrieved correctly
$('#mytable').empty();
var eventresult = JSON.parse(result);
var node = document.getElementById('mytable');
toAppend += '<input type="checkbox" id="selectall" class="c-check">'; //This checkbox will allow me to select all other checkboxes
//I have other checkboxes appended at the bottom with the class "checkbox"
node.innerHTML = toAppend;
document.getElementById('mytable').appendChild(node);
})
当我第一次访问该页面时,select all功能起作用。但是,当使用AJAX更改数据时,如上面的代码所示,select all功能停止工作。我认为我的剧本似乎无法在“成功”中执行。 AJAX的回调,因为在使用AJAX更改/附加后,使用脚本的所有函数似乎都失败了。
有没有办法在我的AJAX中成功执行脚本&#39;成功&#39;打回来?感谢任何反馈/建议!
答案 0 :(得分:0)
我找到了一个真正有效的解决方案,希望它可以帮助有同样问题的人。
$(document).on('change', '#selectall' , function() {
$(".checkbox").attr('checked', $(this).is(":checked")).trigger('change');
});
基本上,使用此格式的.on方法而不是.change方法允许AJAX中的内容访问此脚本。
从这里得到了这个想法: https://forum.jquery.com/topic/use-on-click-do-not-work-after-ajax-call