EJS Script无法在ajax'成功'内执行呼叫

时间:2016-07-12 10:13:59

标签: javascript jquery ajax

我有一个使用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;打回来?感谢任何反馈/建议!

1 个答案:

答案 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