AJAX 响应缓存/onclick-event 函数内部

AJAX response caching / onclick-event inside of a function

我正在使用 AJAX 执行一些 server-side 操作并刷新页面内的 table 而无需重新加载页面本身。乍一看一切正常。但是我在PHP中写了一个函数来发送邮件并通过AJAX执行。当我第二次开始此操作时,会触发旧响应。

到底发生了什么:

接下来会发生什么:

我试图摆脱这种行为的方法:

有关我的设置的更多信息:

我找不到问题的解决方案,这可能是因为我将内容动态添加到 table。我过去遇到过同样的问题,我认为模态(也是动态的)会触发两次 "Yes-Button" 的点击。

您可以将 ajax 点击处理程序放在该函数之外:

$(document).on('click', '.email-resend, .email-send, .show-doc, .show-acc, .more-acc, .no, .yes, .termin', function(){
    $.fn.doAction(classname, comEntry);
}); 

正如您提到的,您已将其放入函数中。相反,你应该把它放在外面:

$(document).on('click', '.bt-ok', function(){
   $.ajax({
     ....
   });
});

由@pandora 编辑: 或者像这样使用第二个函数(在我的例子中):

$(document).on('click', '.bt-ok', function(){
    $.fn.sendRequest($('#modal').attr('data-1'), $('#modal').attr('data-2'));
});

然后我可以像这样调用函数并执行 AJAX:

$.fn.sendRequest = function(data1, data2) {
    $.ajax({
        url: 'target.php',
        cache: false,
        data: { gimme1 : data1, gimme2 : data2 },
        success: function(response) {
            // Show Error
            if(response.length > 0){
                alert(response);
            }

            // Reload Content
            $.fn.Reload('','');

            // Close Modal
            $('#modal').css({'display' : 'none'});
        }
    });
};