读jQuery之十 事件模块概述


Posted in Javascript onJune 27, 2011

后面会详细分析jQuery.event.add/jQuery.event.remove/jQuery.event.trigger。

虽然事件模块代码很难读,但其提供的API接口还是很清晰的。如下
读jQuery之十 事件模块概述
1 添加事件(bind/one/live/delegate/hover/toggle)
bind 基本的添加事件函数。
one 添加只执行一次的事件函数。
live 事件代理(使用document代理)。
delegate 事件代理(使用指定元素代理)。
hover 模拟css的hover。
toggle 显示/隐藏。

bind/one/live 都是使用内部的jQuery.event.add 来完成事件添加。
delegate 内部调用的是live。
hover 内部使用mouseenter/mouseleave,而mouseenter/mouseleave又使用bind。
toggle 内部使用click,而click内部又调用的是bind。

实际上jQuery的一个each调用就给jQuery对象上增加了24个添加事件的快捷方法
如下图

如下图

读jQuery之十 事件模块概述


记住,bind调用的是jQuery.event.add,因此 jQuery.event.add 才是整个jQuery添加事件模块的核心。以上所有的方法都是在其之上构建的上层应用。如图

读jQuery之十 事件模块概述


2 删除事件 (unbind/die/undelegate)

unbind 删除事件基础方法。可以删除一个指定handler,还可以删除某类型事件的全部handler,甚至可以删除挂在element上的全部事件。其内部调用jQuery.event.remove。

die/undelegate 删除事件代理。 内部都使用unbind。


因此, jQuery.event.remove 才是整个jQuery删除事件模块的核心。unbind/die/undelegate都是在其之上构建的上层应用。如图

读jQuery之十 事件模块概述


3 触发事件(trigger/triggerHandler)

trigger 触发一个事件(会冒泡)

triggerHandler 触发一个事件(不会冒泡)


trigger/triggerHandler 内部调用的都是jQuery.event.trigger,因此jQuery.event.trigger 才是整个jQuery触发事件模块的核心。如图
读jQuery之十 事件模块概述

Javascript 相关文章推荐
JS 文件大小判断的实现代码
Apr 07 Javascript
JS面向对象编程浅析
Aug 28 Javascript
json的前台操作和后台操作实现代码
Jan 20 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
jQuery - css() 方法示例详解
Jan 16 Javascript
删除javascript中注释语句的正则表达式
Jun 11 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
微信小程序 支付后台java实现实例
May 09 Javascript
JS随机排序数组实现方法分析
Oct 11 Javascript
js DOM的事件常见操作实例详解
Dec 16 Javascript
js实现简单的贪吃蛇游戏
Apr 23 Javascript
AeroWindow 基于JQuery的弹出窗口插件
Jun 27 #Javascript
jQuery表格行换色的三种实现方法
Jun 27 #Javascript
19个很有用的 JavaScript库推荐
Jun 27 #Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
Jun 27 #Javascript
Jsonp 跨域的原理以及Jquery的解决方案
Jun 27 #Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
Jun 27 #Javascript
基于JQuery实现CheckBox全选全不选
Jun 27 #Javascript
You might like
一个程序下载的管理程序(三)
2006/10/09 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
php获取文件大小的方法
2014/02/26 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php实现word转html的方法
2016/01/22 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
js Html结构转字符串形式显示代码
2011/11/15 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
Python图算法实例分析
2016/08/13 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
毕业生多媒体设计求职信
2013/10/12 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
音乐会主持人开场白
2015/05/28 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python