多个jQuery帖子不起作用

多个jQuery帖子不起作用,jquery,asp.net-mvc,Jquery,Asp.net Mvc,问题: 在使用jQuery的ASP.NET MVC项目中,该函数很少返回数据,而我希望它总是返回数据 问题: 为什么我的.post()函数很少激活成功回调函数?即使每个post返回的状态代码为200 OK 详细信息: 我在ASP.NET cshtml视图中定义了10个空跨距。在html中,每个跨度后面都有一个脚本,该脚本调用一个名为ShowConstraints()的javascript函数: ShowConstraints()函数如下所示: function ShowConstraints(o

问题
在使用jQuery的ASP.NET MVC项目中,该函数很少返回数据,而我希望它总是返回数据

问题
为什么我的
.post()
函数很少激活成功回调函数?即使每个post返回的状态代码为200 OK

详细信息: 我在ASP.NET cshtml视图中定义了10个空跨距。在html中,每个跨度后面都有一个脚本,该脚本调用一个名为
ShowConstraints()
的javascript函数:

ShowConstraints()
函数如下所示:

function ShowConstraints(outputId) {
    outputEl = "#" + outputId;
    $(outputEl).html("Calculating info...");
    $.post("/TestURL/TestPost", function (data) {
            $(outputEl).html(data);
    });
}
/TestURL/TestPost
返回的值总是
返回的

我知道当跨距显示“计算信息…”时,已成功调用过帐函数。我知道当跨度变为显示“Returned!”时,出现了一个成功的帖子

但是,在运行时,只有一个或两个跨距显示“Returned!”。其余部分显示“计算信息…”

作为补充信息,当我调试javascript并逐步执行时,一切都按预期进行,所有跨度都显示“Returned!”


非常感谢。

我真的不建议从HTML中执行这样的代码。这必然会导致不一致,尤其是使用多个
标记进行多个调用时

您应该在页面加载时从JavaScript代码的主要部分执行它,例如:

// On the page load
$(document).ready(function() {

  // Get the spans that we want to loop through
  $('span.mySpans').each(function(index, value) {

      var outputId = $(this).attr('id');

      ShowConstraints(outputId);

  });
});
<span class="mySpans" id="span0"></span>
<span class="mySpans" id="span1"></span>
<span class="mySpans" id="span2"></span>
<span class="mySpans" id="span3"></span>
使用类似以下内容的HTML:

// On the page load
$(document).ready(function() {

  // Get the spans that we want to loop through
  $('span.mySpans').each(function(index, value) {

      var outputId = $(this).attr('id');

      ShowConstraints(outputId);

  });
});
<span class="mySpans" id="span0"></span>
<span class="mySpans" id="span1"></span>
<span class="mySpans" id="span2"></span>
<span class="mySpans" id="span3"></span>

最有可能发生的情况是,在返回部分信息时,您一次调用了一堆信息

outputEl = "#" + outputId;
现在设置为原始输出以外的其他值。
您可以尝试延迟这些函数,使它们不会同时调用,或者尝试将它们作为回调函数链接起来

事实上,它在调试时工作,这听起来像是一个异步问题。。。即使在更正引号格式时也是如此。尝试更新该变量,使其在每个函数调用的范围内都是新的。感谢您对答案进行多次编辑,以尝试跟踪此问题。不幸的是,即使更改为在
$(document)下执行。准备好了
.each
一起循环,我仍然遇到同样的问题。嗯,当我使用
.each()
按元素类型循环,而不是按类循环时,实际上似乎工作正常。我会再努力的。渴望看到您在上一篇评论中提到的jquery解决方案。现在似乎正在工作。我会记下答案的。谢谢