当前位置: 首页 > 面试题库 >

jQuery ajaxStart没有被触发

澹台华翰
2023-03-14
问题内容

此代码

$("#loading").ajaxStart(function() {
        alert("start");
        $(this).show();
    });

在我的标记中

<div style="text-align:center;"><img id="loading" src="../images/common/loading.gif" alt="" /></div>

这是完整的ajax请求:

$.ajax({
        type: "POST",

        url: "http://localhost/WebServices/Service.asmx/GetResults",

        data: jsonText,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {

            var results = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
            PopulateTree(results);
        },

        error: function(xhr, status, error) {
            var msg = JSON.parse(xhr.responseText);
            alert(msg.Message);


        }
    });

$("#loading").ajaxStart(function() {
        alert("start");
        $(this).show();
    });

    $("#loading").ajaxStop(function() {
        alert("stop");
        $(this).hide();
        $("#st-tree-container").show();

    });

即使gif显示为旋转,也永远不会触发警报“开始”。AjaxStop如预期那样被触发。有什么想法吗?


问题答案:

之所以不会被触发,.ajaxStart()是因为直到ajax请求执行
之后 (直到被调用时为止)
您的处理程序才被注册。在.ajaxStop()被注册后为好,但 之前
的请求完成,所以当它回来就迷上了运行。


要解决此问题,请 首次$.ajax()致电 之前
将其移动:

$("#loading").ajaxStart(function() {
  $(this).show();
}).ajaxStop(function() {
  $(this).hide();
  $("#st-tree-container").show();
});

更新:从jQuery 1.9开始,AJAX事件应仅附加到文档。 http://jquery.com/upgrade-
guide/1.9/#ajax-events-should-be-attached-to-
document

$(document).ajaxStart(function() {
  $("#loading").show();
});

$(document).ajaxStop(function() {
  $("#loading").hide();
  $("#st-tree-container").show();
});


 类似资料:
  • 我正在学习Java,正在使用java 8,spring 5.3.9和Apache Tomcat 9。我已经将我的jar文件添加到我的构建路径中的类路径中,将Apache Tomcat添加到我的服务器中,我的项目运行得非常好。现在我开始使用beans和xml文件,我遇到了一个问题。我的代码的一部分被触发,另一部分被忽略。 我有以下界面 FortuneService.java: 和一个快乐财富服务类:

  • 我在Azure上有一个函数,包含以下function.json文件: 除非我错了,否则这个函数应该每天运行一次,在凌晨3点? 这是函数的签名: 我到底做错了什么?当我手动触发(在门户中单击“运行”)时,该功能工作正常,但它在今天凌晨3点没有运行,昨天也没有运行。 编辑:所以,正如建议的那样,我已经将计划更改为付费计划,并且我选择了一个动态计划。日志仍然没有说明功能在今天早上3点被激活。

  • 问题内容: 永远不会在我的Angular控制器中触发。下列: 永远不会碰到断点,永远不会弹出警报。我认为这是非常标准的用法,所以我不确定它会是什么,但绝对不会触发。控制器中的其他所有内容均正常运行。 是什么原因造成的? 问题答案: 根据上面的评论,听起来您有这样的事情: 我不确定ng-view标记中的内容会做什么,但是是从ng-view范围 发出 的。这意味着,它只会从上升,因此您的控制器将永远不

  • wanner测试spring boot(1.5.20)aop(最小代码) 类被aopped时, 请让我知道我错过了什么

  • 问题内容: 我遵循了这里的各种问题和答案来设置我的Android活动以覆盖,以便在软键盘打开和关闭时执行逻辑。这是我的代码的相关摘录。我将其归结为最简单的情况: AndroidManifest.xml SearchActivity.java 当我更改方向时,上面的代码将显示Toast,但在软键盘打开或关闭时,则无任何作用。我已经测试过通过EditText聚焦打开软键盘,并通过长按菜单按钮手动打开它

  • 我有一个Primeface应用程序,其中我启动了一个包含表单的对话框。对话框有一个保存/取消按钮对。在这个对话框中,我无法调用on完成、onstart等方法。我在其他回复中看到原因是没有执行AJAX。但是,我不知道这种情况下的原因,因为命令按钮的类型是提交,并且应该有ajax="true"(默认情况下)。有人能在里面放一点光吗? 我的xhtml: 这是我的后盾: 谢谢!