Javascript JQuery错误的ajax已完成回调被激发

Javascript JQuery错误的ajax已完成回调被激发,javascript,jquery,ajax,callback,Javascript,Jquery,Ajax,Callback,我在ajax回调中遇到了一个奇怪的情况 calla工作正常(我可以在正确的位置看到服务器调用),并且正确地触发了done回调 Call B Call工作正常(我可以在正确的位置看到服务器调用),但随后A's done Call被触发 代码如下: A: 代码B: $(document).ready(function () { $('#twitter_sign_up').submit(function() { var valuesToSubmit = $(this).seri

我在ajax回调中遇到了一个奇怪的情况

calla工作正常(我可以在正确的位置看到服务器调用),并且正确地触发了done回调

Call B Call工作正常(我可以在正确的位置看到服务器调用),但随后A's done Call被触发

代码如下: A:

代码B:

$(document).ready(function () {
    $('#twitter_sign_up').submit(function() {
        var valuesToSubmit = $(this).serialize();
        $.ajax({
            url: $(this).attr('action'), //submits it to the given url of the form
            data: valuesToSubmit,
            dataType: "JSON", // you want a difference between normal and ajax-calls, and json is standard
            type: 'POST'
        }).done(function(json) {
             console.log("in success for modal B...");
        }).fail(function () {
            console.log("--------> modal B callback error");
        });
        return false; // prevents normal behaviour
    });
});

这里发生了什么事?

哦,天哪。。。我刚想出来

所以我有:

<div id="twitter_sign_up">
  <form id="beta_signup_form" ...>
    ...
  </form>
</div>

...

复制html是我的错

我从未见过这种情况发生。你能在这里粘贴HTML代码吗?你确定你给我们看的代码会发生这种情况吗?因为它看起来很好。更重要的是,由于它们位于单独的
$(文档).ready
处理程序中,因此它们不可能相互看到。您应该使用
var valuesToSubmit=$(this).serialize(),$this=$(this)submit
回调中的code>,然后在
$中引用
$this
。ajax
调用而不是
$(this)
。这就是使用jQuery创建ajax的方法,我们可以看到您下次在做什么非常好,哈哈。很高兴你能找到答案。这就排除了我的问题,“呼叫B呼叫工作正常(我可以在正确的位置看到服务器呼叫)”我猜他们都在呼叫同一个位置?或者你没有检查它发布到的位置
<div id="twitter_sign_up">
  <form id="beta_signup_form" ...>
    ...
  </form>
</div>