使用jQuery卸载全部事件的思路详解


Posted in jQuery onApril 03, 2017

说到事件, 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 = {};

以上所述上小编给大家介绍的使用jQuery卸载全部事件的思路详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

jQuery 相关文章推荐
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
jquery replace方法去空格
May 08 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
jQuery完成表单验证的实例代码(纯代码)
Sep 30 jQuery
jQuery基于cookie实现换肤功能实例
Oct 14 jQuery
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
jQuery pagination分页示例详解
Oct 23 jQuery
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
基于JQuery实现页面定时弹出广告
May 08 jQuery
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
Apr 03 #jQuery
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 #jQuery
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 #jQuery
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 #jQuery
jQuery UI Grid 模态框中的表格实例代码
Apr 01 #jQuery
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 #jQuery
jQuery实现Select下拉列表进行状态选择功能
Mar 30 #jQuery
You might like
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
PHP实现微信退款功能
2018/10/02 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
Ext grid 添加右击菜单
2009/11/26 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
python的类变量和成员变量用法实例教程
2014/08/25 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
python实现获取Ip归属地等信息
2016/08/27 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
Python面向对象编程基础实例分析
2020/01/17 Python
python初步实现word2vec操作
2020/06/09 Python
Python如何解除一个装饰器
2020/08/07 Python
大学生个人自我鉴定
2013/12/03 职场文书
社区党员先进事迹
2014/01/22 职场文书
政府法律服务方案
2014/06/14 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
房屋租房协议书范本
2014/12/04 职场文书
开票证明
2015/06/23 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏
我去timi了,一起去timi是什么意思?
2022/04/13 杂记