读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类的封装及实现代码
Dec 02 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
Apr 06 Javascript
JS获取IMG图片高宽的简单实例
May 17 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 Javascript
vue.js+Element实现表格里的增删改查
Jan 18 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
javascript+html5+css3自定义弹出窗口效果
Oct 26 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
详解JS实现系统登录页的登录和验证
Apr 29 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
Nov 06 Javascript
JS实现网站吸顶条
Jan 08 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
php GD绘制24小时柱状图
2008/06/28 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
PHP常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
Git命令之分支详解
2021/03/02 PHP
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
Javascript中replace()小结
2015/09/30 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
Python3.x中自定义比较函数
2015/04/24 Python
python动态网页批量爬取
2016/02/14 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
Python自定义线程池实现方法分析
2018/02/07 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
给交警的表扬信
2014/01/12 职场文书
医务工作者先进事迹材料
2014/01/26 职场文书
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
医德医风演讲稿
2014/05/20 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
开学随笔
2015/08/15 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书