2149 字
11 分钟
JavaScript event事件
2024-08-08

事件#

在JavaScript中,事件指的是网页上的用户行为浏览器行为,例如:点击按钮,提交表单,页面完成加载,鼠标点击,键盘输入等。事件处理是 JavaScript 中非常重要的一部分,我们可以通过监听这些事件以此来触发一些预订好的效果。

当在 DOM 元素上发生事件时,浏览器会创建一个 Event 对象的实例,并触发绑定到该元素上相应的事件处理函数。这个 Event 对象作为参数传递给事件处理函数,使得开发者能够访问事件的相关信息并对事件做出响应。

事件处理#

1 . 事件处理指的是当事件被触发时,应该如何处理这些事件。 2 . 举个栗子:当我们进入一个网站时,并且页面完成加载,这就触发了一个事件,在事件处理上,网站可以给用户一个欢迎弹窗,或者当我们输入密码,密码输入错误时,提示密码输入错误。这些都是对事件的处理。

DOM事件处理方法#

JavaScript中常用的事件处理方法有三种,分别是DOM0,DOM2,DOM3。

DOM0级事件#

1 . DOM0级事件是在Web开发中逐渐形成的,而并非W3C规定的,但却在开发中获得了广泛的应用。 2 . DOM0级事件的原理是:通过直接在HTML元素的事件onclick属性上赋值JavaScript函数或在JavaScript中将函数赋值给DOM元素的事件属性来达到处理事件的效果。 3 . 这种方法较为直观易懂,也存在着一定的不足,当事件被触发时,它无法做到多种处理的效果。

//方式1
<input bottom type="button" value="点击一下">
<script>
// 方式2
let a = document.getElementsByTagName("input")[0].onclick = chufa
function chufa()
{
console.log("点击事件")
}
</script>

DOM2级事件#

1 . DOM2是由W3C组织规定的一个标准,它加入了addEventListener()removeEventListener()方法,前者是添加一个事件的监听器(我们直接称它为“监听器”,后者顾名思义就是删除事件了,但这里我们主要讲一下addEventListener()方法 2 . 它的工作原理是:将指定的监听器注册到 EventTarget 上,当该对象触发指定的事件时,指定的回调函数就会被执行 3 . 这个方法允许您指定在特定类型的事件触发时应该调用哪个函数,这样便提供了更丰富的事件处理能力。 4 . addEventListener(type, listener, useCapture)中含有三个参数位,解释如下:

  • type:事件的名称(click,mousemove,load等)
  • listener:处理事件的函数
  • useCapture:用于控制事件的捕获或冒泡阶段(布尔类型)
<input type="button" value="点击一下">
<script>
let a = document.getElementsByTagName("input")[0]
a.addEventListener("click" , chufa, false)
function chufa()
{
console.log("点击事件")
}
</script>

DOM3级事件#

1 . DOM3在DOM0和DOM2的基础上新增了一些事件类型,例如:鼠标事件,键盘事件,滚轮事件等等。 2 . 每一类事件类型的都比较多,这里只讲一下鼠标事件键盘事件的一些常用事件类型

鼠标事件作用键盘事件作用
dblclick双击事件keyCode该属性包含键盘中对应键位的键值
mousedown按下鼠标键时触发target发生事件的节点
mouseup松开鼠标键时触发srcElement发生事件的元素
mousemove鼠标移动shiftKey是否按下Shift键
mouseover鼠标移入ctrlKey是否按下Ctrl键
mouseout鼠标移出altKey是否按下Alt键
mouseenter鼠标移入metaKey是否按下Meta键
mouseleave鼠标移出charCode该属性包含键盘中对应键位的Unicode编码

事件#

在JavaScript中,事件指的是网页上的用户行为浏览器行为,例如:点击按钮,提交表单,页面完成加载,鼠标点击,键盘输入等。事件处理是 JavaScript 中非常重要的一部分,我们可以通过监听这些事件以此来触发一些预订好的效果。

事件处理#

1 . 事件处理指的是当事件被触发时,应该如何处理这些事件。 2 . 举个栗子:当我们进入一个网站时,并且页面完成加载,这就触发了一个事件,在事件处理上,网站可以给用户一个欢迎弹窗,或者当我们输入密码,密码输入错误时,提示密码输入错误。这些都是对事件的处理。

DOM事件处理方法#

JavaScript中常用的事件处理方法有三种,分别是DOM0,DOM2,DOM3。

DOM0级事件#

1 . DOM0级事件是在Web开发中逐渐形成的,而并非W3C规定的,但却在开发中获得了广泛的应用。 2 . DOM0级事件的原理是:通过直接在HTML元素的事件onclick属性上赋值JavaScript函数或在JavaScript中将函数赋值给DOM元素的事件属性来达到处理事件的效果。 3 . 这种方法较为直观易懂,也存在着一定的不足,当事件被触发时,它无法做到多种处理的效果。

//方式1
<input bottom type="button" value="点击一下">
<script>
// 方式2
let a = document.getElementsByTagName("input")[0].onclick = chufa
function chufa()
{
console.log("点击事件")
}
</script>

DOM2级事件#

1 . DOM2是由W3C组织规定的一个标准,它加入了addEventListener()removeEventListener()方法,前者是添加事件,后者顾名思义就是删除事件了,但这里我们主要讲一下addEventListener()方法 2 . 它的工作原理是:将指定的监听器注册到 EventTarget 上,当该对象触发指定的事件时,指定的回调函数就会被执行 3 . 这个方法允许您指定在特定类型的事件触发时应该调用哪个函数,这样便提供了更丰富的事件处理能力。 4 . addEventListener(type, listener, useCapture)中含有三个参数位,解释如下:

  • type:事件的名称(click,mousemove,load等)
  • listener:处理事件的函数
  • useCapture:用于控制事件的捕获或冒泡阶段(布尔类型)
<input type="button" value="点击一下">
<script>
let a = document.getElementsByTagName("input")[0]
a.addEventListener("click" , chufa, false)
function chufa()
{
console.log("点击事件")
}
</script>

DOM3级事件#

1 . DOM3在DOM0和DOM2的基础上新增了一些事件类型,例如:鼠标事件,键盘事件,滚轮事件等等。 2 . 每一类事件类型的都比较多,这里只讲一下鼠标事件键盘事件的一些常用事件类型

鼠标事件作用键盘事件作用
dblclick双击事件keyCode该属性包含键盘中对应键位的键值
mousedown按下鼠标键时触发target发生事件的节点
mouseup松开鼠标键时触发srcElement发生事件的元素
mousemove鼠标移动shiftKey是否按下Shift键
mouseover鼠标移入ctrlKey是否按下Ctrl键
mouseout鼠标移出altKey是否按下Alt键
mouseenter鼠标移入metaKey是否按下Meta键
mouseleave鼠标移出charCode该属性包含键盘中对应键位的Unicode编码

更多事件类型可参考:菜鸟教程

3 . 我们写段代码做个示例:

#box{
width: 200px;
height: 200px;
background: hotpink;
}
<div id="box"></div>
<input name="input" value="输入框">

4 . 在这段代码中,我们使用了两个事件处理,并通过Switch开关来,判断正在进行哪种事件,最后在控制台返回事件处理的结果。

let a = document.querySelector("#box");
let b = document.getElementsByName("input")[0];
// 为鼠标移动添加一个事件监听
a.addEventListener("mousemove", function(event) {
chufa(event.type);
});
// 为B键添加一个事件监听
b.addEventListener("keydown", function(event) {
if (event.key === "b") {
chufa(event.type);
}
});
function chufa(eventType) {
switch (eventType) {
case "mousemove":
console.log("鼠标正在移动");
break;
case "keydown":
console.log("B键被敲击");
break;
default:
console.log("Null");
}
}

3 . 我们写段代码做个示例:

#box{
width: 200px;
height: 200px;
background: hotpink;
}
<div id="box"></div>
<input name="input" value="输入框">

4 . 在这段代码中,我们使用了两个事件处理,并通过Switch开关来,判断正在进行哪种事件,最后在控制台返回事件处理的结果。 5 . event.type是事件对象的属性,当然了这次讲的是事件的处理方法,事件对象在下期会讲到。

let a = document.querySelector("#box");
let b = document.getElementsByName("input")[0];
// 为鼠标移动添加一个事件监听
a.addEventListener("mousemove", function(event) {
chufa(event.type);
});
// 为B键添加一个事件监听
b.addEventListener("keydown", function(event) {
if (event.key === "b") {
chufa(event.type);
}
});
function chufa(eventType) {
switch (eventType) {
case "mousemove":
console.log("鼠标正在移动");
break;
case "keydown":
console.log("B键被敲击");
break;
default:
console.log("Null");
}
}

JavaScript event事件
https://mizuki.mysqil.com/posts/javascript-dom-event事件/
作者
Almango
发布于
2024-08-08
许可协议
CC BY-NC-SA 4.0
封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00