js教程(7)

一、事件监听(事件绑定)

1.事件

事件是在编程时系统内发生的动作或者发生的事情,比如用户在网页上点击按钮,摁下键盘的某个键。

2.事件监听

事件监听就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称之为绑定事件或者注册事件。

比如鼠标经过显示下拉菜单,比如点击可以播放轮播图等。

3.语法

元素对象.addeventListener('事件类型',要执行的函数);

事件监听三要素:

  • 事件源:那个dom元素被事件触发了,要获取dom元素;
  • 事件类型:用什么方式触发,比如鼠标单击click。鼠标经过mouseover等;
  • 事件调用的函数:要做什么事情

代码示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	<button>我被绑定了</button>
	<script>
		const button = document.querySelector("button");
		button.addEventListener("click",function(){
			alert("事件发生了!");
		});
	</script>
</body>
</html>

浏览器结果:

4.事件监听版本

  • DOM L0------事件源.on事件=function(){};
  • DOM L2------事件源.addEventListener(事件,事件处理函数);
  • 上述两种方式,on方式会被覆盖,而addEventListener方式可以绑定多次,拥有事件更多特性,推荐使用。

发展历史:

  • DOM L0------是DOM的发展的第一个版本;
  • DOM L1------DOM级别1于1998年10月1日成为W3C推荐标准;
  • DOM L2------使用addEventListener注册事件;
  • DOM L3------DOM3级事件模块在DOM2级事件的基础上重新定义了这些事件,也添加了一些新事件类型。

二、事件类型

1.鼠标事件

(1)click------鼠标点击;

(2)mouseenter------鼠标经过;

(3)mouseleave------鼠标离开;

2.焦点事件

(1)focus------获得焦点;

(2)blur------失去焦点;

3.键盘事件

(1)Keydown------键盘按下触发;

(2)Keyup------键盘抬起触发;

4.文本事件

(1)input------用户输入事件;

5.其他事件

(1)load------是在网页加载完毕后触发相应的事件处理程序;

(2)change------是指当前标签失去焦点并且标签的内容发生改变时触发事件处理程序。

三、事件对象

事件对象也是个对象,这个对象里有事件触发时的相关信息,例如鼠标点击事件中,事件对象就存了鼠标点在那个位置等信息。

事件对象可以判断用户按下了那个键,比如按下回车键可以发布消息,也可以判断鼠标点击了哪个元素,从而做相应的操作。

语法

元素.addEventListener('click',function(e){});

在事件绑定的回调函数的第一个参数就是事件对象,一般命名为event、ev、e。

事件对象常用属性

1.type------获取当前的事件类型;

2.clientX/clientY------获取光标相对于浏览器可见窗口左上角的位置;

3.offsetX/offsetY------获取光标相对于当前DOM元素左上角的位置;

4.key------用户按下的键盘键的值,现在不提倡使用keyCode;

四、环境对象

环境对象指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境,弄清除this的指向,可以让我们的代码更简洁。

注意点
  1. 函数的调用方式不同,this指代的对象也不同;
  2. 谁调用,this就是谁------这是判断this指向的粗略规则,在开发中我们调用的多了就会判断this指向谁;
  3. 直接调用函数,其实相当于时window.函数,这时this指代window;

五、回调函数

如果将函数A做为参数来传递给函数B时,我们称函数A为回调函数,代码示例:

javascript 复制代码
const button = document.querySelector("button");
button.addEventListener("click",function(){
	console.log("我是回调函数");
});
  1. 把函数当做另一个函数的参数传递,这个函数就叫回调函数;
  2. 回调函数本质还是函数,只不过把它当成参数使用;
  3. 使用匿名函数做为回调函数比较常见。
相关推荐
徐同保4 分钟前
通过AzureOpenAI请求gpt-4.1-mini
前端
红尘散仙15 分钟前
四、WebGPU 基础入门——Uniform 缓冲区与内存对齐
前端·rust·gpu
进取星辰26 分钟前
13、性能优化:魔法的流畅之道——React 19 memo/lazy
前端·react.js·前端框架
吴_知遇31 分钟前
【华为OD机试真题】428、连续字母长度 | 机试真题+思路参考+代码解析(E卷)(C++)
开发语言·c++·华为od
zwjapple31 分钟前
React中createPortal 的详细用法
前端·javascript·react.js
小矮马33 分钟前
React-组件通信
前端·javascript·react.js
codingandsleeping42 分钟前
pnpm + monorepo:高效的项目管理方式
前端
程序员三千_1 小时前
最近爆火的MCP到底是什么?
前端
basketball6161 小时前
Python torchvision.transforms 下常用图像处理方法
开发语言·图像处理·python
宁酱醇1 小时前
各种各样的bug合集
开发语言·笔记·python·gitlab·bug