js 事件

作者: Viewwei | 来源:发表于2020-11-13 19:59 被阅读0次

事件流介绍

事件流描述了页面接受事件的顺序。事件流定义了事件冒泡和事件捕获。
事件冒泡是指事件从最具体的元素开始接触,然后向上传播至没有那么具体的元素(文档)
事件捕获的目的是为了在事件最终达到最终目标前进行拦截。事件捕获实际上是指从没有那么具体的元素到最后具体的元素的过程。浏览器一般是从window对象开始

DOM事件流

DOM2EVENTS规范规定事件流分为三个节点:事件捕获,到达目标,事件冒泡

DOM0事件处理流程

在JavaScript中指定事件处理程序的传统方式是把一个函数赋值给(dom元素)一个事件处理程序属性。每个元素都有事件处理程序属性,比如onclick.

let btn = document.getElementById("btn")
btn.onClick= function(){
console.log(this)
}

注意:上述函数方法中的this指向的是元素本身,即Button元素。

DOM1处理事件程序

DOM2 Event为事件处理程序的赋值和移除提供了两个方法 addEventListener removeListener。这两个方法暴露在DOM节点上面。他们接受三个参数,事件名称,事件处理函数和一个布尔值。当布尔值为true的时候,代表事件的触发会出现在捕获阶段,布尔值为false,表示事件的触发生在冒泡阶段。addEventListener和removeListener 的处理事件函数样式必须一样才能达到移除效果,如果addEventListener添加多次,那么事件处理函数也会触发多次。
注意:为了让事件能够回收。当事件所在的元素已经删除,最好把事件也设置为null

事件对象

在DOM合规的浏览器中,event对象是传给事件处理程序的唯一参数。不管是使用何种方式处理,都会传入event事件对象。事件对象的属性有以下。

bubbless:事件是否冒泡
cacelable:表示是否可以取消事件的默认行为
currentTarget:当前事件处理所在的元素
defaultPrevented:true表示已经调用preventDefault方法(表示取消某些元素的特定行为,比如a标签的跳转)
detail:事件相关属性,比如单机两次,detail会变成2,光标出去了会自动变为0
eventPhase:表示调用事件处理程序的阶段 1代表捕获阶段 2代表到达目标 3代表冒泡阶段
preventDefault():用于取消事件的默认行为 cancelable为true才能调用这个方法
stopImmediatePropagation:取消所有后续事件捕获或者事件冒泡,并阻止调用人格后续的事件
stopPropagation:取消所有后续事件捕获或者事件冒泡,只有bubbles为true才可以调用
target:事件的目标
type:代表事件的类型

事件类型

事件可以分为以下几种类型

用户界面事件
焦点事件
鼠标事件
滚轮事件
输入事件
键盘事件

用户界面事件

用户界面数据一般是指界面事件或者UI事件:比如onload,unload
onload事件表示文档已经下载完成或者图片下载完成。图片只要设置了src属性,那么久会触发onload事件
unload:表示文档已经卸载了就会触发这个事件
resize:当浏览器窗口缩放到一个新的高度或者宽度就会触发这个事件
scroll:页面中相关元素发生变化就会触发这个事件

焦点事件

blur:当元素失去焦点时候触发
focus:当元素获得焦点的时候触发

鼠标和滚轮事件

click:用户点击鼠标主键时候触发
dbclick:双击触发
mosedown:按下鼠标任意按键触发,该事件不能通过键盘触发
moseenter:鼠标光标从元素外部移动到元素内部触发
mouseleave:鼠标从元素内部移动到元素外部触发

事件距离相关属性

pageX,pageY :光标在页面中的位置
clientX,clientY:代表光标距离视口的位置
screentX,screenY:表示光标距离桌面的距离
offsetX,offsetY:表示光标距离目标元素的距离

事件委托

过得的事件处理程序需要用到事件委托。事件委托需要一个共同的目标元素。事件委托主要是通过事件冒泡到相同的元素上面,在通过事件的target,来区分不同元素的事件。

相关文章

  • js(事件)

    js 事件js事件.png

  • js操作页面三步骤

    js操作页面三步骤 js事件 鼠标事件 文档事件 键盘事件 表单事件 事件对象 js操作内容 js操作样式 页面转...

  • 事件

    1、鼠标的移入移除js部分 2、鼠标事件js部分 3、事件对象js部分 4、键盘事件js部分 5、输入框事件js部...

  • 20、jQuery 事件机制

    20、jQuery 事件机制 原生js事件与jQuery事件: (1)用原生的js给div注册事件 原生js注册相...

  • javascript 中的事件机制

    js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...

  • JavaScript的事件机制详解

    【js事件详解】js事件封装函数,js跨浏览器事件处理机制 一、事件流 事件流描述的是从页面中接受事件的顺序。IE...

  • JS的事件绑定和事件流模型

    一、JS事件 (一)JS事件分类 1.鼠标事件: click/dbclick/mouseover/mouseout...

  • js事件 事件冒泡

    js事件的分类 事件的类型:有鼠标事件,键盘事件,HTML事件,变化事件 注意:js中的事件前面要加on(如:on...

  • JS事件相关基础

    js事件: 键盘事件: JS中的事件冒泡和事件捕获: 1、事件冒泡。如下代码: 点击button事件,连同父元素绑...

  • 2019-01-11 input框事件,jQuery其他事件,自

    js事件的分类事件的类型:有鼠标事件,键盘事件,HTML事件,变化事件注意:js中的事件前面要加on (如:onc...

网友评论

      本文标题:js 事件

      本文链接:https://www.haomeiwen.com/subject/hisbbktx.html