读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 相关文章推荐
Json和Jsonp理论实例代码详解
Nov 15 Javascript
javascript获取ckeditor编辑器的值(实现代码)
Nov 18 Javascript
jQuery中data()方法用法实例
Dec 27 Javascript
浅析jquery与checkbox的checked属性的问题
Apr 27 Javascript
jQuery无刷新上传之uploadify简单代码
Jan 17 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
Angular使用$http.jsonp发送跨站请求的方法
Mar 16 Javascript
javascript按顺序加载运行js方法
Dec 01 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
Sep 12 Javascript
vue实现的组件兄弟间通信功能示例
Dec 04 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
vue实现登录功能
Dec 31 Vue.js
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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
python实现快速排序的示例(二分法思想)
2018/03/12 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
Python是什么 Python的用处
2020/05/26 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
造价工程师个人求职信
2013/09/21 职场文书
化验室技术员岗位职责
2013/12/24 职场文书
三八妇女节活动总结
2014/05/04 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
2014年组织部工作总结
2014/11/14 职场文书
八一建军节慰问信
2015/02/14 职场文书
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技
Golang 入门 之url 包
2022/05/04 Golang
Python实现双向链表基本操作
2022/05/25 Python