jQuery ajaxStart 无法触发的原因

在jquery 3.11版本中,$.ajaxStart()无法被触发
主要原因有两种:

  1. 全局的AJAX事件(ajaxStart, ajaxStop, ajaxSend, ajaxComplete, ajaxError, and ajaxSuccess) 只能在document元素上触发。修改AJAX事件监听程序到document元素上。例如,如果目前的代码看起来像这样:
$(“#status”).ajaxStart(function(){ $(this).text(“Ajax started”); });

修改成这样:

$(document).ajaxStart(function(){ $(“#status”).text(“Ajax started”); });

2.ajaxStart是一种全局的配置,是jQuery中对ajax请求的一种全局拦截配置。。通常用来侦测页面中异步请求的发送/结束.
需要提前进行配置:

      $(function () {

            $("#onload").hide();

            //调用在document 提前配置 检测ajax 状态
            $(document).ajaxStart(function () {
                $("#onload").show();
            });
            $(document).ajaxStop(function () {
                $("#onload").hide();
            });
            $("#send").click(function () {

                $.ajax(
                        {
                            type:"POST",
                            url:"http://xiaocai.com/ajax/post1.php",
                            datatype:"php",
                            success:function (data) {
                                alert(data);
                            },
                            error: function (xml,status,error) {
                                console.log(error);
                            },
                            global:true

                        }

                );

            });
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容