您现在的位置:首页 --> JavaScript --> 使用jquery卸载全部事件
使用jquery卸载全部事件
浏览:1565次 出处信息
说到事件,jquery做了不少,当然也有data的很多功劳,因为原生js不支持匿名卸载事件的,而她为了开发者好用支持了匿名的
匿名事件的思路
首先她会判断目标是否是元素或者对象,如果是元素,则在元素上打一个标识(expando)然后值是生成的一个guid,并在缓存对象下建立一个缓存,比如:
$.cache={
'2': {
data: {},
events: {},
handle: function(){}
},
} 然后会在你触发元素事件时拿元素上的标识去往缓存里的events里找,并会有是否委托,选择器等判断,然后最终触发,卸载的时候其实是拿缓存里的handle卸载的,因为是一个...
如果目标不是元素,比如是一个window那么她会直接往目标上添加标识,比如:window[$.expando]
其实事件跟缓存有很深的关系,她们是蕾丝~
卸载全部事件
清空标识
这里的标识包括元素上的和对象上的
$('*').add(window).each(function(){
try{
delete this[$.expando];
}catch(e){}
}); ps:因为window不是元素,但会有一些事件,比如scroll,resize等
删除缓存
这里的缓存包括元素的缓存和对象缓存
window[$.expando] = {}
$.cache = {};建议继续学习:
- Js事件监听封装(支持匿名函数) (阅读:4472)
- jQuery事件编写进阶 (阅读:3902)
- jQuery事件的冒泡过程 (阅读:3608)
- js中鼠标滚轮事件详解 (阅读:3035)
- 关于Javascript的俩个有趣的探讨 (阅读:2973)
- 如何在关闭某个内核模块 (阅读:2852)
- javascript事件:获取事件对象getEvent函数 (阅读:2711)
- 基于事件的社会化网站 (阅读:2556)
- 一种生成事件脉络的方法 (阅读:2292)
- C#的设计缺陷(1):显式实现接口内的事件 (阅读:1954)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:前端用户模块
后一篇:JavaScript 被忽视的细节 >>
文章信息
- 作者:前端小武 来源: 前端小武
- 标签: 事件 卸载
- 发布时间:2016-04-02 22:44:16
建议继续学习
近3天十大热文
-
[927] WordPress插件开发 -- 在插件使用 -
[126] 解决 nginx 反向代理网页首尾出现神秘字 -
[51] 如何保证一个程序在单台服务器上只有唯一实例( -
[50] 整理了一份招PHP高级工程师的面试题 -
[48] CloudSMS:免费匿名的云短信 -
[48] Innodb分表太多或者表分区太多,会导致内 -
[48] 用 Jquery 模拟 select -
[48] 全站换域名时利用nginx和javascri -
[48] 海量小文件存储 -
[46] ps 命令常见用法
