深入理解jQuery 事件处理


Posted in Javascript onJune 14, 2016

浏览器的事件模型

DOM第0级事件模型

1.Event实例

他的属性提供了关于当前正被处理的已触发事件的大量信息。这包括一些细节,比如在哪个元素上触发的事件、鼠标事件的坐标以及键盘事件中单击了哪个键。

2.事件冒泡

当触发 dom 树中一个元素上的事件时,事件模型会检查这个元素是否已经创建了特定的事件处理器。如果是,就会调用已创建的事件处理器。然后,事件模型会检查目标元素的父元素,看其是否已经为此事件类型创建了处理器。如果是,就调用已创建的处理器,之后检查它的父元素,以及父元素的父元素,以此类推,直到 dom 树的顶部。

DOM第2级事件模型

IE事件模型

jQuery事件模型

使用jQuery绑定事件处理器

<html> 
<head> 
  <title>jQuery Events Example</title> 
  <script type="text/javascript" src="../scripts/jquery-1.7.1.js"></script> 
  <script type="text/javascript"> 
    $(function () { 
      $('#example') 
       .bind('click', function (event) { 
         alert('BOOM once!'); 
       }) 
       .bind('click', function (event) { 
         alert('BOOM twice!'); 
       }) 
       .bind('click', function (event) { 
         alert('BOOM three times!'); 
       }); 
    }); 
  </script> 
</head> 
 
<body> 
  <img id="example" src="example.jpg" /> 
</body> 
</html>

bind(eventType, data, handler); bind(eventMap)

可以为事件名称添加以圆点分隔的后缀来指定命名空间,以批量操作事件处理器。

可以通过单个bind()方法来为一个元素绑定多个事件。

$('.whatever').bind({
  click:function(event){/* handle */},
  mouseenter: function (event) {/* handle */ },
  mouseleave: function (event) {/* handle */ }
})

特定的事件绑定:

blur change click dblclick error focus focusin focusout keydown keypress keyup load mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup ready resize scroll select submit unload

当使用这些便捷方法时,event.data值是只读的。他们有一个参数 listener 函数,表示事件处理器。

focusin focusout

one(eventType, data, listener)

删除事件处理器

unbind(eventType, listener); unbind(event)

删除特定的事件处理器

删除命名空间中的所有事件处理器

$('*').unbind('.fred')Event实例

独立于浏览器的jQuery.Event属性和方法

名称 描述
altKey
ctrlKey
currentTarget
data
metaKey
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
result
target
timestamp
type
which
preventDefault()
stopPropagation()
stopImmediatePropagation()
isPropagationStopped()
isImmediatePropagationStopped()

触发事件处理器

trigger(eventType, data)

triggerHandler(eventType, data)

触发的便捷方法

blur() change() click() dblclick() error() focus() focusin() focusout() keydown() keypress() keyup() load() mousedown() mouseenter() mouseleave() mousemove() mouseout() mouseover() mouseup() resize() scroll() select() submit() unload()

其他事件相关的方法

1.起切换作用的监听器

toggle(listener1, listener2, ...)

2.在元素上悬停鼠标

hover(enterHandler, leaveHandler); hover(handler)

充分利用(更多的)事件

过滤大的数据集合

通过模板复制创建元素

建立主体标记

添加新的过滤器

添加限定控件

删除不需要的过滤器和其他任务

以上这篇深入理解jQuery 事件处理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery为textarea添加maxlength属性的代码
Apr 07 Javascript
使用JS 清空File控件的路径值
Jul 08 Javascript
JavaScript调用后台的三种方法实例
Oct 17 Javascript
js操作css属性实现div层展开关闭效果的方法
May 11 Javascript
JS实现弹性菜单效果代码
Sep 07 Javascript
AngularJS进行性能调优的7个建议
Dec 28 Javascript
Javascript农历与公历相互转换的简单实例
Oct 09 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
快速搭建React的环境步骤详解
Nov 06 Javascript
前端MVVM框架解析之双向绑定
Jan 24 Javascript
vue实现双向绑定和依赖收集遇到的坑
Nov 29 Javascript
vue 在methods中调用mounted的实现操作
Aug 07 Javascript
使用jquery获取url及url参数的简单实例
Jun 14 #Javascript
JS操作JSON方法总结(推荐)
Jun 14 #Javascript
JavaScript Promise 用法
Jun 14 #Javascript
Javascript基础_简单比较undefined和null 值
Jun 14 #Javascript
Javascript缓存API
Jun 14 #Javascript
JS修改地址栏参数实例代码
Jun 14 #Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 #Javascript
You might like
风格模板初级不完全修改教程
2006/10/09 PHP
PHP入门
2006/10/09 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
Three.js快速入门教程
2016/09/09 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
Python join()函数原理及使用方法
2020/11/14 Python
Python如何telnet到网络设备
2021/02/18 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
升学宴演讲稿
2014/09/01 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
六一儿童节标语
2014/10/08 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
学校运动会开幕词
2016/03/03 职场文书
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python