使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010-12-30 00:00
1221 查看
情景
如何在特定的请求上实现"ajaxStart"的效果?
首先,重写Ajax方法的代价太高,仍然可以利用jQuery自身的Ajax Events。
Ajax触发的全局事件会像一个标准事件一样传播到所有DOM节点上。层级:jQuery Events > Ajax Events > 自定义Ajax事件。
实现
有两种方法可以判断出触发的事件是否为特定的事件:
确定的命名空间。
在触发时传递额外的参数给事件处理程序。
这里用事件的命名空间来进行触发来源的判断。adapt方法相当于适配器的应用,用一套改善的接口替代了另一套接口。
如果要增加load方法,稍微麻烦一点,因为有可能是ajax方法或者元素的onload事件。
要添加一个代理方法,并进行类型判断:
使用
所有方法参数仍与原先一致:
如何在特定的请求上实现"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)
相关文章推荐
- 利用jQuery全局事件ajaxStart为特定请求实现提示效果
- jquery实现的用户注册表单提示操作效果代码分享
- 使用jquery的sortable插件实现拖动效果,以及影响blur事件触发的解决方法
- jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
- jquery 全局AJAX事件使用代码
- 使用jquery动态生成的标签,需要在代码当中绑定才可以实现事件的监听
- jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
- 使用jquery的sortable插件实现拖动效果,以及影响blur事件触发的解决方法
- 使用JQuery和CSS模拟超链接的用户单击事件的实现代码
- 如何统计网站访问量,代码实现使用全局变量 Application,start,end,Session_start,Session_end事件
- jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
- jquery 全局AJAX事件使用代码
- 基于jquery的loading 加载提示效果实现代码
- 使用jQuery和Ajax请求实现分页效果
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
- jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
- jquery实现网页Title提示效果代码
- 使用jQuery和Ajax请求实现分页效果