事件处理程序

事件处理程序

Event handlers can be used to handle and verify user input, user actions, and browser actions : Things that should be done every time a page loads. Things that should be done when the page is closed. Action that should be performed when a user clicks a button.

事件处理程序作为 HTML 标记的属性嵌入到文档中,您可以将 JavaScript 代码分配给这些标记以执行。一般语法是

<TAG eventHandler=”JavaScript Code”>

其中 TAG 是一些 HTML 标签和 事件处理程序 是事件处理程序的名称。

例如,假设您创建了一个 JavaScript 函数,名为 计算 .当用户单击按钮时,您可以通过将函数调用分配给按钮的 点击 事件处理程序:

有许多不同类型的事件可能发生。

例如:

  • 用户选择、单击或将光标悬停在某个元素上。
  • 用户选择键盘上的一个键。
  • 用户调整或关闭浏览器窗口。
  • 一个网页完成加载。
  • 提交了一个表格。
  • 播放、暂停或结束视频。
  • 发生错误。

要对事件做出反应,您需要为其附加一个事件处理程序。这是在事件触发时运行的代码块(通常是您作为程序员创建的 JavaScript 函数)。当这样的代码块被定义为响应事件而运行时,我们说我们正在注册一个事件处理程序。注意:有时会调用事件处理程序 ** 事件监听器** ——就我们的目的而言,它们几乎可以互换,尽管严格来说,它们是一起工作的。 侦听器侦听事件的发生,处理程序是响应事件发生而运行的代码。

const btn = document.querySelector('button');

函数随机(数字){
返回 Math.floor(Math.random() * (number+1));
}

btn.addEventListener('click', () => {
const rndCol = rgb(${random(255)}, ${random(255)}, ${random(255)});
document.body.style.backgroundColor = rndCol;
});

在这段代码中,我们存储了对 <button> 常量内的元素称为 btn , 使用 Document.querySelector() 功能。

HTML 事件处理程序属性

使用 HTML 事件处理程序属性分配事件处理程序被认为是不好的做法,应尽可能避免,原因如下:

首先,事件处理程序代码与 HTML 代码混合在一起,这将使代码更难维护和扩展。

二是时间问题。如果元素在 JavaScript 代码之前完全加载,用户可以开始与网页上的元素交互,这将导致错误。

例如,假设以下 显示警报() 函数在外部 JavaScript 文件中定义:

** <input type="button" value="Save" onclick="showAlert()">** 代码语言:HTML、XML

当页面完全加载且 JavaScript 尚未加载时, 显示警报() 功能未定义。如果用户此时单击该按钮,则会发生错误。

DOM 0 级事件处理程序

每个元素都有事件处理程序属性,例如 点击 .要分配事件处理程序,请将属性设置为函数,如示例所示:

让 btn = document.querySelector('#btn');

btn.onclick = 函数() { alert('点击了!'); };

代码语言:JavaScript

在这种情况下,匿名函数成为 按钮 元素。因此, 这个 value 等价于元素。您可以在事件处理程序中访问元素的属性:

让 btn = document.querySelector('#btn');

btn.onclick = 函数() { 警报(this.id); };

代码语言:JavaScript

输出:

 btn

通过使用 这个 在事件处理程序中,您可以访问元素的属性和方法。

要删除事件处理程序,请将事件处理程序属性的值设置为 无效的

btn.onclick = null;

代码语言:JavaScript

由于其简单性和跨浏览器支持,DOM Level 0 事件处理程序仍然被广泛使用。

DOM 2 级事件处理程序

DOM Level 2 Event Handlers 提供了两种主要的方法来处理注册/注销事件监听器:

  • 添加事件监听器() – 注册一个事件处理程序
  • 移除事件监听器() – 删除一个事件处理程序

概括

  • 分配事件处理程序有三种方法:HTML 事件处理程序属性、元素的事件处理程序属性和 添加事件监听器() .
  • 应避免通过 HTML 事件处理程序属性分配事件处理程序。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/36076/23561408

posted @ 2022-09-14 08:25  哈哈哈来了啊啊啊  阅读(52)  评论(0编辑  收藏  举报