JavaScript 事件机制
1 什么是事件
JavaScript 使我们有能力创建动态页面。事件是可以被 JavaScript 侦测到的行为。
网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件。比方说,我们可以在用户点击某按钮时产生一个 onClick 事件来触发某个函数。事件在 HTML 页面中定义。
2 把事件绑定给元素
事件监听方式(标准方式)
addEventListener(Event, fn) (非IE IE9+)
attachEvent(Event, fn) (IE8-)
把事件作为元素的方法
dom.onclick = fn
把事件作为标签的内部属性
<button onclick="code..">
3 给元素解除事件绑定
标准方式绑定的事件
removeEventListener(event, fn) (IE9+ 非IE)
detachEvent(Event, fn) (IE8-)
其他方式绑定
重新绑定事件,用空的函数 覆盖 前面的
dom.onclick = function(){}
4 this在事件中的作用
- 给一组元素绑定事件
- 在元素内部 通过属性形式
<button onclick="fn(this)">此时this表示所在的元素
5 事件列表
5.1 鼠标事件
click 单击左键
dblclick 双击 左键
contextmenu 右单击
mouseover 鼠标悬浮
mouseout 鼠标移出
mousedown 鼠标按键按下
mouseup 鼠标按键抬起
mousemove 鼠标移动
5.2 键盘事件
keydown 键盘按键 按下
keyup 键盘按键 抬起
keypress 键盘按键 按下 (只有字符按键) (控制按键不可以 Ctrl shift 上下左右都不行)
5.3 文档事件
load 加载完成
unload 文档关闭
beforeunload 文档关闭 (兼容性好)
5.4 表单事件
submit 表单提交的时候, 绑定给form元素
reset 表单重置, 绑定给form元素
blur 失去焦点
focus 获得焦点
change 表单控制的内容改变 通常绑定给 radio checkbox select 如果绑定给输入的input, 必须满足 内容改变和失去焦点才能触发
select input 或 textarea 内容被选中的时候触发
5.5 图片事件
abort 图片加载中断
load 图片加载完成
error 图片加载错误
5.6 其他事件
scroll 元素内部的内容滚动 适合于有滚动条的元素
resize 绑定给window, 窗口尺寸发生变化
6 Event对象
6.1 分类
Event
MouseEvent
KeyboardEvent
FocusEvent
...................
6.2 属性
clientX 鼠标的x坐标
clientY 鼠标的Y坐标
button 鼠标按键的标示
值
0 按了左键
1 按了滚轮
2 按了右键
keyCode 键盘按键的值
cancelBubble 阻止事件冒泡 设置为true
target 返回触发此事件的元素
tyep 返回事件类型
timeStamp 返回触发事件的那一刻的时间戳(从页面打开的那一刻开始
altKey 返回当事件被触发时,"ALT" 是否被按下。
ctrlKey 返回当事件被触发时,"CTRL" 键是否被按下。
shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。
6.3 方法
stopPropagation() 阻止事件冒泡
preventDefault() 阻止元素默认的事件
JavaScript 事件机制的更多相关文章
- 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)
前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...
- Javascript事件机制兼容性解决方案
本文的解决方案可以用于Javascript native对象和宿主对象(dom元素),通过以下的方式来绑定和触发事件: 或者 var input = document.getElementsByTag ...
- 【探讨】javascript事件机制底层实现原理
前言 又到了扯淡时间了,我最近在思考javascript事件机制底层的实现,但是暂时没有勇气去看chrome源码,所以今天我来猜测一把 我们今天来猜一猜,探讨探讨,javascript底层事件机制是如 ...
- JavaScript事件机制——细思极恐
JavaScript事件机制,也有让人深思的东西.在一开始未深入了解,我头脑里有几个问题发出: 1. 自下而上(冒泡)事件怎么写,自上而下(捕获)又是怎么写? 2. 捕获型和冒泡型同时设置,谁生效? ...
- 重温javascript事件机制
以前用过一段时间的jquery感觉太方便,太强大了,各种动画效果,dom事件.创建节点.遍历.控件及UI库,应有尽有:开发文档也很多,网上讨论的问题更是甚多,种种迹象表明jquery是一个出色的jav ...
- [解惑]JavaScript事件机制
群里童鞋问到关于事件传播的一个问题:“事件捕获的时候,阻止冒泡,事件到达目标之后,还会冒泡吗?”. 初学 JS 的童鞋经常会有诸多疑问,我在很多 QQ 群也混了好几年了,耳濡目染也也收获了不少,以后会 ...
- 总结JavaScript事件机制
JavaScript事件模型 在各种浏览器中存在三种事件模型: 原始事件模型 , DOM2事件模型 , IE事件模型. 其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE ...
- javascript事件机制
① javascript绑定事件的方式 http://blog.iderzheng.com/dom-javascript-event-binding-comparison/ ② javascript事 ...
- 对JavaScript事件机制的一点理解
JavaScript通过事件机制实现了异步操作,这种异步操作可以使CPU可以在IO任务的等待中被释放出来处理其他任务,等待IO结束再去处理这个任务.这个是一个基本的事件机制. 那么是不是说事件从监听到 ...
- JavaScript——事件机制
事件是将JavaScript脚本与网页联系在一起的主要方式,是JavaScript中最重要的主题之一,深入理解事件的工作机制以及它们对性能的影响至关重要.本文将详细介绍JavaScript的事件机制, ...
随机推荐
- windows常用命令行总结
cmd下的命令行 1.查看当前目录下的子目录 dir 或 dir /b 类似Linux 下的 ls 或者 ls -l 2.盘符切换 d: 3.进入目录 cd [目录名] 退一个目录 cd .. ...
- Python函数(1)
一.Python函数介绍 函数时组织好的,可重复的,用来实现单一,或相关联功能的代码段. 函数的使用原则时先定义,后调用:事先准备工具的过程即函数的定义,遇到应用场景拿来当工具用即函数的调用. 函数的 ...
- 用canvas绘制一个简易时钟
在见识了html5中canvas的强大,笔者准备制作一个简易时钟. 下面就是成果啦,制作之前我们先分析一下,绘制一个时钟需要做哪些准备. 一 . 1.首先这个时钟分为表盘,指针(时针,分针,秒针)和数 ...
- 让DIV的滚动条自动滚动到最底部
一个在线聊天窗口,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息. 我得出的结论是:在选中div时,必须用原生js,jQuery不起作用 <!DOCTYPE> < ...
- 转:Windows任务计划实现自动执行ArcGIS相关功能
今天一不小心点开了Windows任务计划,以前咩有怎么用过,发现还挺好用,于是想到了以前用户的一些问题 1:用户环境使用ArcSDE服务连接,每次运行到一定的负载量(可能是几天),就会很慢,用户就喜欢 ...
- js报错 object is not a function
主要是js函数名重名了,重命名就可以了.
- 出现Permission denied的解决办法
出处 https://blog.csdn.net/qq_16525279/article/details/80245350 提示 Permission denied 解决的办法: $ sudo chm ...
- 修改hosts工具推荐SwitchHosts
推荐一个修改hosts的工具.适合平时工作中经常修改hosts的开发测试. 下载地址:https://oldj.github.io/SwitchHosts/ 可以按各种环境或者项目添加,用的时候打开或 ...
- Jenkins使用分组过滤分类
背景:Jenkins项目过多,通过选项卡的方式过滤需要的项目 1.点击选择卡上的加号 2.填写要分组的名字 3.可选择某个job进行分类,或者使用正则表达式的方式进行分类,楼主是根据正则进行匹配, 4 ...
- mm struct与pgd
假如该vm_area_struct描述的是一个文件映射的虚存空间,成员vm_file便指向被映射的文件的file结构,vm_pgoff是该虚存空间起始地址在vm_file文件里面的文件偏移,单位为物理 ...