修改默认的ajaxStart, ajaxStop 显示loading

        <span id="loading_span" style="display:none;">...</span>
        <button id="btnSubmit">提交</button>
        <script type="text/javascript">
            $("#loading_span").bind({
                ajaxStart:function() {$(this).show();},
                ajaxStop:function() {$(this).hide();}
            });
            $("#btnSubmit").on("click", function(){
                $.ajax({
                    url:"php/postTest.php",
                    type:"GET",
                    data:{},
                    success:function(data){
                        data = $.parseJSON(data);
                        alert(data.key); 
                    }
                });
            })
        </script>

bind可以这样用吗?没有看到文档中有给bind传入一个对象的接口

ajaxStart ajaxStop都不是window下的方法,bind是如何定位它们的命名空间的?

效果:只要有ajax,loading就显示。

试试其它的,其它方法不能绑定到元素上

结论,是jQuery的特殊方法,这些ajaxStart和ajaxStop的事件处理程序可以绑定到任意文档元素上,jQuery是全局地触发它们,而不是在特定的元素上触发。

如果调用 jQuery.ajax()时没有设置context,其它四个方法ajaxSend, ajaxSuccess, ajaxError, ajaxComplete也可绑定到任意元素上

原文地址:https://www.cnblogs.com/frostbelt/p/2681683.html