读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启动应用程序的一个简单例子
May 11 Javascript
JavaScript 继承详解(四)
Jul 13 Javascript
合并table相同单元格的jquery插件分享(很精简)
Jun 20 Javascript
JQuery选择器特辑 详细小结
May 14 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
Feb 25 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
关于RequireJS的简单介绍即使用方法
Oct 20 Javascript
javaScript之split与join的区别(详解)
Nov 08 Javascript
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
vue底部加载更多的实例代码
Jun 29 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
Sep 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
PHP 中dirname(_file_)讲解
2007/03/18 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
js简单抽奖代码
2015/01/16 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[20:30]职业巡回赛回顾
2018/08/09 DOTA
Python正则表达式匹配ip地址实例
2014/10/09 Python
解密Python中的描述符(descriptor)
2015/06/03 Python
人机交互程序 python实现人机对话
2017/11/14 Python
python表格存取的方法
2018/03/07 Python
python pygame实现2048游戏
2018/11/20 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
Python变量访问权限控制详解
2019/06/29 Python
python基于Selenium的web自动化框架
2019/07/14 Python
Django分页功能的实现代码详解
2019/07/29 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
高等教育学专业自荐书
2014/06/17 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
工伤私了协议书范本
2014/11/24 职场文书
学校运动会加油词
2015/07/18 职场文书
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL