• 【一周"纪"录】"狐狸"外逃,海外群众也不会放过他们 2019-06-24
  • 浙江宁波:全国失信被执行人将面临联合信用惩戒 2019-06-24
  • 其实逻辑跟简单:小萌们如果能把自己计划好又何至于悲催到要通过混淆所有制形式把别人的钱偷到自己口袋里? 2019-06-20
  • 您访问的页面找不回来了 2019-06-19
  • 人工智能驱动数字经济发展 2019-06-11
  • 再添4个代建项目 轻资产模式加速下的建业地产千亿图景 ——凤凰网房产北京 2019-06-11
  • 俄媒:普京高度评价中国之行} 2019-06-09
  • 南通如皋为应对督察“回头看”违法掩埋危险废物 2019-06-09
  • 惊险刺激!300米悬崖荡秋千 体验180°空中回荡 2019-06-08
  • 特氏说让日韩买单并没有提中国。你为何把中国加上啊? 2019-06-08
  • 关于开展对我市改革建言献策活动的启事 2019-06-08
  • 南宁前7月有115个空气优质天 美丽“南宁蓝”常现 2019-06-07
  • 警车化身“产房” 冰雪路上“生命接力” 2019-06-07
  • 为何一个不在城中心的儿童之家成为全省最美? 2019-06-07
  • 美对华发起第七次双反调查 专家:或另有深意 2019-06-06
  • Jquery中文网 码报 www.okkrb.tw
    Jquery中文网 >  jQuery  >  jquery 教程  >  正文 使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码

    91期码报资料图片:使用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-06-24
  • 浙江宁波:全国失信被执行人将面临联合信用惩戒 2019-06-24
  • 其实逻辑跟简单:小萌们如果能把自己计划好又何至于悲催到要通过混淆所有制形式把别人的钱偷到自己口袋里? 2019-06-20
  • 您访问的页面找不回来了 2019-06-19
  • 人工智能驱动数字经济发展 2019-06-11
  • 再添4个代建项目 轻资产模式加速下的建业地产千亿图景 ——凤凰网房产北京 2019-06-11
  • 俄媒:普京高度评价中国之行} 2019-06-09
  • 南通如皋为应对督察“回头看”违法掩埋危险废物 2019-06-09
  • 惊险刺激!300米悬崖荡秋千 体验180°空中回荡 2019-06-08
  • 特氏说让日韩买单并没有提中国。你为何把中国加上啊? 2019-06-08
  • 关于开展对我市改革建言献策活动的启事 2019-06-08
  • 南宁前7月有115个空气优质天 美丽“南宁蓝”常现 2019-06-07
  • 警车化身“产房” 冰雪路上“生命接力” 2019-06-07
  • 为何一个不在城中心的儿童之家成为全省最美? 2019-06-07
  • 美对华发起第七次双反调查 专家:或另有深意 2019-06-06
  • 桑普多利亚对罗马比赛 校内网篮球巨星 波斯波利斯民族 丛林送彩金 埃瓦尔vs马竟 澳门五分彩计划 自由精神游戏 恩波利国家 堡垒之夜手机版怎么设置中文 地府烈焰试玩