使用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遮罩层实例讲解
May 11 jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
jquery实现左右轮播图效果
Sep 28 jQuery
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 jQuery
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
jQuery实现的页面详情展开收起功能示例
Jun 11 jQuery
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
May 27 jQuery
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
jQuery实现弹出层效果
Dec 10 jQuery
jquery实现弹窗(系统提示框)效果
Dec 10 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选项列表(超详细)
2013/07/01 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
用python进行视频剪辑
2020/11/02 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
打印机墨盒:123Inkjets
2017/02/16 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
学习十八届三中全会精神实施方案
2014/02/17 职场文书
车辆转让协议书
2014/04/15 职场文书
保研推荐信
2014/05/09 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
学子宴致辞大全
2015/07/27 职场文书
大学入学感言
2015/08/01 职场文书
高中英语教学反思范文
2016/03/02 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
7个关于Python的经典基础案例
2021/11/07 Python