• ajaxStart、ajaxStop使用注意事项


    今天在查看项目代码的时候发现ajaxStart、ajaxStop这两个方法,以前还没用过,以前都是直接用$.ajax的。踩了些ajaxStart、ajaxStop的坑,网上查阅资料发现这两个在不同版本的jquery用法不同

    在查阅资料后,发现原来在jquery1.9+版本以后,ajax全局事件需绑定到document对象上才能触发。

    下面是各版本不同写法:

    <html>
    <head>
        <meta charset="utf-8">
        <style>
            #loading {
                position: absolute;
                top:0;
                left:0;
                right: 0;
                bottom: 0;
                background: rgba(0,0,0,.2);
                display: none;
            }
            #loading span {
                position: absolute;
                top: 48%;
                left: 48%;
            }
        </style>
    </head>
    <body>
        <div id="loading"><span>loading...</span></div>
        <form id="demo">
            <input type="text" value="demo1" name="demo1">
            <input type="text" value="demo2" name="demo2">
            <input type="text" value="demo3" name="demo3">
            <input type="submit" value="提交" id="submit">
        </form>
    </body>
    </html>
    
    <script>
        $(function(){
            $("#submit").click(function(){
            //  var data = $("form").serializeArray();
                var data = $("form").serialize();
                $.ajax({
                    type:"get",
                    url:"1.php",
                    data:data,
                    dataType:"json",
                    success:function(data){
                        console.log(data);
                    },
                    error:function(xhr,error){
                        console.log(error);
                    }
                })
            })
            // 1.9 以前写法
            $("#loading").ajaxStart(function(){
                $(this).show();
            }).ajaxStop(function(){
                $(this).hide();
            })
            // 1.9+ 之后写法
            $(document).ajaxStart(function(){
                $("#loading").show();
            }).ajaxStop(function(){
                $("#loading").hide();
            })
    
            // 以上两种简写
            // 1.9 以前
            $("#loading").on("ajaxStart ajaxStop",function(){
                $(this).toggle();
            })
            // 1.9+ 以后
            $(document).on("ajaxStart ajaxStop",function(){
                $("#loading").toggle();
            })
        })
    </script>
    
  • 相关阅读:
    luogu P2661 信息传递 强连通分量求最小环
    luogu P1346 电车 最短路
    luogu P1113 杂务
    luogu P1111 修复公路 最小生成树prim
    python提交要注意的几个地方
    【图论】拓扑排序
    算法竞赛入门经典 第六章
    实用函数
    Markdown数学公式语法
    Codeforces Round #627 (Div. 3) 补题
  • 原文地址:https://www.cnblogs.com/it100fen/p/13026935.html
Copyright © 2020-2023  润新知