我使用AJAX执行一些服务器端操作并刷新页面内的表而不重新加载页面本身。在第一次观看时一切正常。但我在PHP中编写了一个函数来发送电子邮件并通过AJAX执行它。当我第二次启动此操作时,会触发旧响应。
究竟发生了什么:
接下来会发生什么:
我试图摆脱这种行为:
有关我的设置的更多信息:
我无法找到问题的解决方案,也许这是因为我将内容动态添加到表中。我过去遇到了同样的问题,我认为Modal(也是动态的)会触发两次点击“Yes-Button”。
答案 0 :(得分:2)
您可以将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'});
}
});
};