什么是事件对象
Event对象代表是事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮等事件通常与函数会在事件发生前被执行
事件对象包括
e.preventDefault()
阻止浏览器默认行为
e.stopPropagation( )
阻止事件进一步捕获或冒泡
e.clientX、e.clientY
鼠标相对于浏览器窗口可是区域的X,Y坐标(窗口坐标),可是区域不包括工具栏和滚动条。
e.offsetX、e.offsetY:
鼠标相对于事件源(触发事件的元素)的X,Y坐标,只有IE事件有这2个属性,标准事件没有对应的属性。
e.screenX、e.screenY:
鼠标相对于用户显示器屏幕左上角的X,Y坐标。标准事件和IE事件都定义了这2个属性。
e.keyCode:
获得按键的code值
target与currentTarget区别
- target: 触发事件的对象,谁触发谁命中。
- currentTarget: 绑定事件的对象,恒等于this,等于addEventListener前面的元素
事件传播机制
- 事件默认是由内向外执行的 事件默认是从外向内查找的 找到触发事件的元素(最内层)再由内向外进行触发的
什么是捕获
捕获型事件:事件从最不精确的对象(document 对象)开始触发,然后到最精确也可以在窗口级别捕获事件
捕获由内向外执行的
什么是冒泡
冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。
冒泡是由外向内执行的