读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 相关文章推荐
javascript+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
jquery蒙版控件实现代码
Dec 08 Javascript
JavaScript中的原型和继承详解(图文)
Jul 18 Javascript
jquery中使用循环下拉菜单示例代码
Sep 24 Javascript
js实现的Easy Tabs选项卡用法实例
Sep 06 Javascript
javascript实现拖动元素交换位置
Nov 29 Javascript
AngularJs中route的使用方法和配置
Feb 04 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
Nov 30 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
Dec 26 Javascript
JS实现点击循环切换显示内容的方法
Oct 19 Javascript
layui-table表复选框勾选的所有行数据获取的例子
Sep 13 Javascript
你不知道的 TypeScript 高级类型(小结)
Aug 28 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 curl模拟post请求小实例
2013/11/13 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
ajax 文件上传应用简单实现
2009/03/03 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
python进阶教程之动态类型详解
2014/08/30 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
法警的竞聘演讲稿
2014/01/02 职场文书
库房保管员岗位职责
2014/04/07 职场文书
群众路线专项整治方案
2014/10/27 职场文书
求职信格式范文
2015/03/19 职场文书
2015年检验科工作总结
2015/04/27 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
解析python中的jsonpath 提取器
2022/01/18 Python