jQuery / Ajax请求被发送两次

我一遍又一遍地扫描我的代码,但我似乎无法找到问题。 当我单击链接#add-user-btn ,文件actions.php被调用两次(因此PHP脚本执行两次)。

这是脚本:我想它与ajax请求前面的javascript有关?

 $(function () { $("#add-user-btn").click(function (e) { e.preventDefault(); var email = $("#email").val(); var name = $("#name").val(); var action = "adduser"; $.ajax({ url: '../actions.php', type: 'POST', data: { action: action, email: email, name: name, }, dataType: 'json', success: function (data) { $(".close-reveal-modal").click(); } }); }); }); 

HTML:

 

Add new user

Administrator Superuser User

×

尝试

 $("#add-user-btn").unbind('click').bind('click', function () { }); 

这将确保只调用一次click事件。

当我使用我只能访问我的javascript的特定网站时,我也遇到了这种错误。 问题是在其他代码中有很多$(function()和$(document).ready。

你能做些什么来防止这种情况,如果你无法纠正核心问题是:

 var preventRunDefault; $(function () { if(!preventRunDefault) { preventRunDefault = true; $("#add-user-btn").click(function (e) { e.preventDefault(); var email = $("#email").val(); var name = $("#name").val(); var action = "adduser"; $.ajax({ url: '../actions.php', type: 'POST', data: { action: action, email: email, name: name, }, dataType: 'json', success: function (data) { $(".close-reveal-modal").click(); } }); }); } }); 

但正确的方法是搜索原因而不做变通办法。