读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 相关文章推荐
jquery 模拟类搜索框自动完成搜索提示功能(改进)
May 24 Javascript
javascript中的一些注意事项 更新中
Dec 06 Javascript
基于jquery的监控数据是否发生改变
Apr 11 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
js 动态修改css文件用到了cssRule
Aug 20 Javascript
浅谈JavaScript的push(),pop(),concat()方法
Jun 03 Javascript
相册展示PhotoSwipe.js插件实现
Aug 25 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
如何判断出一个js对象是否一个dom对象
Nov 24 Javascript
微信小程序登录态控制深入分析
Apr 12 Javascript
浅谈Angular路由守卫
Aug 26 Javascript
javascript防抖函数debounce详解
Jun 11 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编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
JS实现简易日历效果
2021/01/25 Javascript
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
windows下python安装pip图文教程
2018/05/25 Python
python+os根据文件名自动生成文本
2019/03/21 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
大学生毕业鉴定
2014/01/31 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript