event事件总结

定义

event事件对象 , 当一个事件发生的时候,和当前这个对象发生的这个事件有关的一些详细的信息都会被临时保存到一个指定地方-event对象,供我们在需要的调用。用来获取事件的详细信息:鼠标位置、键盘按键。

事件对象必须在一个事件调用的函数里面使用才有内容

事件函数:事件调用的函数,一个函数是不是事件函数,不在定义的决定,而是取决于这个调用的时候

兼容

ie/chrome : event是一个内置全局对象

标准下 : 事件对象是通过事件函数的第一个参数传入

Event对象的兼容:ev=ev||window.event

如果一个函数是被事件调用的那么,这个函数定义的第一个参数就是事件对象

属性介绍:

button:返回一个数字,表示哪个鼠标按键会按点击。0:左键  1:中间键  2:右键

buttons:返回一个数字,1:左键   2:右键   4 中间键 (当已有鼠标按键被按下,数字会相加)

isTrusted:返回一个布尔值,true代表用户操作触发,false表示事件由脚本生成。

bubbles:返回布尔值,指示事件是否是冒泡事件类型。

cancelable:返回布尔值,true表示事件可以被取消

cancelBubble:获取或设置一个布尔值,true阻止冒泡事件.已废弃

clientX:相对于浏览器水平距离

clientY:相对于浏览器垂直距离

screenX:相对于显示屏的水平距离

screenY:相对于显示屏的垂直距离

offsetX:相对于事件源的水平距离

offsetY:相对于事件源的水平距离

pageX:相对于网页的水平距离(包括滑动滚动条被卷起来的部分)

pageY:相对于网页的垂直距离

layerX:相对于offsetParent的水平距离(offsetParent:祖先定位元素,如果没有就是body。定位元素指的是元素的 CSS position 属性被设置为 relative、absolute 或 fixed 的元素。)

layerY:相对于offsetParent的垂直距离

X:event.x 是event.clientX 属性的别名.

Y:同clientY。

target:返回事件的目标节点(触发该事件的节点)

currentTarget:注册事件时所指向的元素

relatedTarget:是鼠标事件的次要目标(如果存在)

(控制台打印currentTarget能打印相关对象,但是打印event属性,却显示null,这是因为currentTarget 只能用于事件正在处理过程中,当回调结束,会被重新赋值。)

defaultPrevented:返回一个布尔值,表示事件是否调用preventDefault()方法。

detail:返回数字,点击的次数

eventPhase:返回一个数字,表示事件流当前处于哪一个阶段。0:NONE没有事件正在被处理   1:CAPTURING_PHASE捕获阶段.  2:AT_TARGET目标节点自身  3:BUBBLING_PHASE起泡阶段

movementX:返回一个数字,当前事件和上一个mousemove事件之间鼠标在水平方向上的移动值

movementY:当前事件和上一个mousemove事件之间鼠标在垂直方向上的移动值

returnValue:设置或获取事件的返回值,非标准已废弃

timeStamp:返回事件发生时的时间戳.

type:返回事件对象的事件类型

which:返回指定事件上哪个键盘键或鼠标按钮被按下。

altKey,ctrlKey,shiftKey,metaKey:表示alt,ctrl,shift,meta键是否被按下。


2.事件冒泡

事件冒泡 : 当一个元素接收到事件的时候,会把他接收到的所有传播给他的父级,一直到顶层window.事件冒泡机制

–取消冒泡:ev.cancelBubble=true

事件捕获与事件冒泡相反。


3.事件绑定

ie:obj.attachEvent(事件名称,事件函数);

1)没有捕获

2)事件名称有on

3)事件函数执行的顺序:标准ie-》正序  非标准ie-》倒序

4)this指向window

标准:obj.addEventListener(事件名称,事件函数,是否捕获);

1)有捕获

2)事件名称没有on

3)事件执行的顺序是正序

4)this触发该事件的对象

是否捕获 : 默认是false    false:冒泡 true:捕获

是鼠标事件的次要目标(如果存在)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 9,068评论 1 19
  • 转载 前端开发面试题 <a name='preface'>前言</a> 本文由我收集总结了一些前端面试题,初学者阅...
    小九喵喵阅读 3,388评论 0 0
  • JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发...
    劼哥stone阅读 5,043评论 3 11
  • "new (p) T()"的用法 从p指向的空间中分配T类型的空间。如: 这样就从p指向的空间中分配出一个char...
    王一百阅读 2,338评论 0 0
  • 2016.10.26 陈珊妮的《低调人生》 与陈珊妮的交流开始于朋友的微博推荐,我所谓的交流并非面对面的进行,而是...
    景小跳的简单生活阅读 2,299评论 0 1

友情链接更多精彩内容