天天看点

十二、JavaScript事件

一、事件的传播和阻止

事件的传播:点击后代标签时,会触发所有父级标签相同类型的事件

执行顺序:从当前标签向父级元素执行,也就是执行当前标签的事件,再逐一执行父级标签的事件

捕获顺序:当前标签触发事件,会寻找父级标签上相同的事件类型一起执行

冒泡机制:ie浏览器,从子级开始,向父级获取具有相同的事件类型

捕获机制:非ie浏览器,从父级开始,向子级获取具有相同的事件类型,执行时,顺序都是 从 当前标签 至 父级标签

阻止事件的传播

普通浏览器:

低版本ie浏览器:

谁写谁阻止,谁不触发父级,谁不写谁触发父级

二、事件委托

事件不是写给当前标签的,而是绑定给父级标签

通过父级标签触发事件,然后通过判断触发事件的对象,来判断需要执行的不同代码

绑定给父级标签对象的事件,触发时有可能是不同的标签对象,触发的事件

子级标签没有绑定事件,因为是父级标签的一部分,点击子级也算是点击父级,因为也会触发父级的事件

三、tab切换

原理:通过父级标签添加点击事件,以事件委托的方式给ul>li添加执行程序

缺点:

没有通过循环遍历,给所有ul>li添加事件,没有获取到索引下标

就必须要在 ul>li 标签中自定义属性和属性值,属性值就是标签对应的索引下标

四、事件对象的属性

e.target:触发事件的标签对象

e.target.parentelement:直接父级标签对象

e.target.parentnode:直接父级标签对象

e.target.tagname:触发事件的标签对象名称,全大写英文字母

点击事件中,e事件对象中存储坐标信息,只能获取鼠标点击的位置坐标,不能设定

键盘事件中,e事件对象中存储的按键信息

offsetx,offsety

触发事件的标签对象,左上角为坐标原点

在鼠标拖拽时,鼠标坐标原点会改变

在整个页面中拖拽div

起始时坐标原点是 document 文档的左上角

当鼠标经过div时,坐标原点是 div 的左上角

获取的坐标数值不同,会造成 div 闪来闪去

clientx,clienty

视窗窗口,左上角为坐标原点

pagex,pagey

html文档,左上角为坐标原点

继续阅读