• (两会受权发布)中华人民共和国全国人民代表大会公告(第六号) 2019-09-16
  • 赵久占、郭健斌任天津市北辰区人民政府副区长 2019-09-16
  • 杨箕寺右 百余龙舟齐汇江面 2019-09-13
  • 特朗普敬礼被批相关新闻 2019-09-13
  • 回复@“老笑头”,你的牛二逻辑确实很通透!论坛奇葩!哈哈哈哈! 2019-09-09
  • “一带一路”国际合作高峰论坛 2019-09-06
  • 为太原人才新政点赞! 2019-09-05
  • 我们没有足够的力量来威慑?人民中大多数肯定是不能再接受清式双赢的。俺很想尝尝历战总是赢家给咱准备的“后果”,这次不吃肯定会长到吃不吃由不得我。告诉世界:不要让我 2019-09-05
  • 哈萨克斯坦今年计划启动1吉瓦可再生能源项目 2019-09-05
  • 【景德镇天气】最新景德镇今天天气,实时提供景德镇气温、空气质量、24小时天气预报、生活指数查询 2019-09-05
  • 上海抚州商会返乡考察团来抚考察 2019-08-31
  • 十二届全国人大常委会第二十二次会议 2019-08-29
  • 地价10年暴涨4倍背后:供地减半 开发商拿地疯狂 ——凤凰网房产上海 2019-08-28
  • 历朝历代的更替,又说明了什么呢? 2019-08-27
  • 龙峰:帮助更多企业用好互联网—上游新闻对话重庆经济 2019-08-26
  • Jquery中文网 码报 www.okkrb.tw
    Jquery中文网 >  jQuery  >  jquery 教程  >  正文 使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码

    2017今晚码报图:使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码

    发布时间:2013-07-19   编辑:码报 www.okkrb.tw
    首先,重写Ajax方法的代价太高,仍然可以利用jQuery自身的Ajax Events。
    首先,重写Ajax方法的代价太高,仍然可以利用jquery自身的Ajax Events。 情景
    如何在特定的请求上实现"ajaxStart"的效果?
    首先,重写Ajax方法的代价太高,仍然可以利用jQuery自身的Ajax Events。
    Ajax触发的全局事件会像一个标准事件一样传播到所有DOM节点上。层级:jQuery Events > Ajax Events > 自定义Ajax事件。
    实现
    复制代码 代码如下:

    Wo = window.Wo || {};
    Wo.ajax = {
    spinner : $([])
    ,init : function() {
    var $spinner = this.spinner = $('#ajax-loading');
    var show = function(e) {
    if(e.namespace === 'Wo') $spinner.show();
    };
    var hide = function(e) {
    $spinner.hide();
    };
    $spinner.bind({
    'ajaxStart.Wo' : show
    ,'ajaxStop.Wo' : hide
    ,'ajaxError.Wo' : hide
    });
    this.adapt(['getJSON','get','post','ajax']);
    }
    // 预备发送请求
    ,_prepare : function() {
    this.spinner.trigger('ajaxStart.Wo');
    }
    // 接口批量变更
    ,adapt : function(fns) {
    var self = this;
    $.each(fns,function(i,fn) {
    Wo[fn] = function() {
    self._prepare();
    $[fn].apply(this,arguments);
    }
    });
    }
    };

    有两种方法可以判断出触发的事件是否为特定的事件:
    确定的命名空间。
    在触发时传递额外的参数给事件处理程序。
    这里用事件的命名空间来进行触发来源的判断。adapt方法相当于适配器的应用,用一套改善的接口替代了另一套接口。
    如果要增加load方法,稍微麻烦一点,因为有可能是ajax方法或者元素的onload事件。
    要添加一个代理方法,并进行类型判断:
    复制代码 代码如下:

    var _load = $.fn.load;
    $.fn.load = function() {
    $.type(arguments[0]) === 'string' && self._prepare();
    _load.apply(this,arguments);
    return this;
    };

    使用
    所有方法参数仍与原先一致:
    复制代码 代码如下:

    Wo.post(url, [data,] callback)

    码报 www.okkrb.tw 您可能感兴趣的文章:
    使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
    Jquery ajaxStart()与ajaxStop()方法(实例讲解)
    Jquery Ajax学习实例7 Ajax所有过程事件分析示例
    jquery $.ajax相关用法分享
    jQuery Ajax 全解析
    jQuery Ajax 实例全解析
    jquery ajax请求实例深入解析
    jquery的ajax请求全面了解
    JQuery.Ajax之错误调试帮助信息介绍
    jQuery Ajax使用 全解析

    [关闭]
  • (两会受权发布)中华人民共和国全国人民代表大会公告(第六号) 2019-09-16
  • 赵久占、郭健斌任天津市北辰区人民政府副区长 2019-09-16
  • 杨箕寺右 百余龙舟齐汇江面 2019-09-13
  • 特朗普敬礼被批相关新闻 2019-09-13
  • 回复@“老笑头”,你的牛二逻辑确实很通透!论坛奇葩!哈哈哈哈! 2019-09-09
  • “一带一路”国际合作高峰论坛 2019-09-06
  • 为太原人才新政点赞! 2019-09-05
  • 我们没有足够的力量来威慑?人民中大多数肯定是不能再接受清式双赢的。俺很想尝尝历战总是赢家给咱准备的“后果”,这次不吃肯定会长到吃不吃由不得我。告诉世界:不要让我 2019-09-05
  • 哈萨克斯坦今年计划启动1吉瓦可再生能源项目 2019-09-05
  • 【景德镇天气】最新景德镇今天天气,实时提供景德镇气温、空气质量、24小时天气预报、生活指数查询 2019-09-05
  • 上海抚州商会返乡考察团来抚考察 2019-08-31
  • 十二届全国人大常委会第二十二次会议 2019-08-29
  • 地价10年暴涨4倍背后:供地减半 开发商拿地疯狂 ——凤凰网房产上海 2019-08-28
  • 历朝历代的更替,又说明了什么呢? 2019-08-27
  • 龙峰:帮助更多企业用好互联网—上游新闻对话重庆经济 2019-08-26
  • 十一运夺金开奖号码走势图 福建时时彩走势图 重庆时时走势图 浙江11选5投注 澳客老版本下载 七乐彩历史开奖1500期号码 梭哈真人 广东福彩好彩一走势图数据分析 赌场21點玩法 河北十一选五购买技巧