JavaScript事件处理的方式(三种)

yizhihongxing

JavaScript事件处理的方式,一般可以分为三种,分别是通过HTML属性、DOM 0级事件处理和DOM 2级事件处理。下面将一一详细讲解。

1. HTML属性方式

使用HTML标签的事件属性来绑定事件,比如<button onclick="alert('clicked')">Click me</button>

HTML属性事件处理方式虽然简单,但是显得不够优雅。主要问题有:

  • JS代码与HTML代码混在一起,难以维护。
  • 不支持事件捕获。

2. DOM 0级事件处理

DOM 0 级事件处理是指在DOM对象上直接定义事件处理程序(事件监听器)。可以通过element.事件名 = function() {} 的方式定义事件处理程序。

示例:

<button id="btn">Click me</button>
<script>
    var btn = document.querySelector('#btn');
    btn.onclick = function() {
        alert('clicked');
    }
</script>

DOM 0级事件处理方式相对于HTML属性法,可以将JS代码与HTML代码分离,但是存在的问题依旧是:不支持事件捕获。

3. DOM 2级事件处理

DOM 2级事件处理方式是目前使用最广泛的事件处理方式,基于事件冒泡的传播机制,支持事件捕获和事件冒泡。使用DOM 2级事件处理程序需要掌握Event对象和EventListener接口。

示例:

<button id="btn">Click me</button>
<script>
    var btn = document.querySelector('#btn');
    btn.addEventListener('click', function(event) {
        alert('clicked');
    })
</script>

上面的代码中,addEventListener方法接收两个参数,第一个参数是事件类型,第二个参数是事件处理程序(名字随意)。事件处理程序可以是匿名函数,也可以是具名函数。

使用DOM 2级事件处理程序的优点在于:

  • 支持事件捕获和冒泡。
  • 可以为同一元素添加多个事件处理程序,不会覆盖已有的事件处理程序。

综上所述,三种JavaScript事件处理方式都有各自的优缺点,应根据实际需求进行选择。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript事件处理的方式(三种) - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • javascript Number 与 Math对象的介绍

    针对“JavaScript Number 与 Math 对象的介绍”的完整攻略,以下为详细说明: JavaScript Number 介绍 JavaScript Number 对象用于在代码中处理数字。JavaScript 中的数字可以是,十进制,二进制,八进制,十六进制和科学计数法。 语法 var x = 123; // 十进制 var x = 0xff;…

    JavaScript 2023年5月28日
    00
  • JavaScript运行原理分析

    JavaScript运行原理分析 JavaScript是一种高级编程语言,常用于Web开发中的动态交互效果。但是,在进行JavaScript的开发时,我们需要了解JavaScript运行的原理以及其在网页中的执行方式。本文将对JavaScript运行原理进行详细的分析。 JavaScript的运行方式 在Web开发过程中,JavaScript代码的运行是由浏…

    JavaScript 2023年5月17日
    00
  • 防止网站内容被小偷采集的js代码 原创

    下面是防止网站内容被小偷采集的js代码的完整攻略,包含以下步骤: 步骤一:禁止右键菜单和文字选择 在网页中加入以下代码可以禁止鼠标右键菜单和文字选择: <body oncontextmenu="return false" onselectstart="return false"> 这样做可以有效防止普通用户…

    JavaScript 2023年6月11日
    00
  • 20行js代码实现的贪吃蛇小游戏

    20行js代码实现的贪吃蛇小游戏攻略 1. 实现思路 该贪吃蛇小游戏的实现思路非常简单,主要分为以下两步: 初始化游戏BOSS。 在游戏中添加监听事件,监听玩家的操作,并处理游戏逻辑。 2. 代码实现 游戏的实现代码如下: with(document){ a = appendChild(createElement("canvas")).g…

    JavaScript 2023年5月27日
    00
  • JS字符串统计操作示例【遍历,截取,输出,计算】

    为了更好地讲解 “JS字符串统计操作示例【遍历,截取,输出,计算】”,我们首先需要了解什么是字符串以及JavaScript中的字符串操作函数。 1. 什么是字符串? 字符串就是一系列字符的集合,例如”Hello World!”就是一个字符串。在JavaScript中,字符串可以用单引号、双引号或被反斜杠包括起来。 例如: var str = ‘Hello W…

    JavaScript 2023年5月28日
    00
  • JavaScript中作用域链的概念及用途讲解

    作用域链的概念及用途讲解 在 JavaScript 中,每个函数都拥有自己的作用域(scope),也就是变量和函数的可访问范围。当函数在执行的时候,会先在自己的作用域中查找变量和函数,如果找不到,就会沿着作用域链向上逐级查找,直到找到为止。 作用域链的概念是指多个嵌套的作用域形成的查找链,它的顶端是全局作用域,底端是当前函数的作用域。 作用域链的主要作用是为…

    JavaScript 2023年6月10日
    00
  • JavaScript 面向对象之命名空间

    JavaScript 面向对象之命名空间 JavaScript 是一门支持面向对象编程的语言,但在实践中,我们发现 JavaScript 的命名空间机制并不完整或者说不够严谨。因此,我们可以借助 Object 对象和函数声明的方式来实现 JavaScript 的命名空间。 命名空间的概念 命名空间是一个用于“组织代码”的容器,它类似于文件系统中文件夹的概念,…

    JavaScript 2023年5月27日
    00
  • 浅谈JavaScript函数节流

    浅谈 JavaScript 函数节流 函数节流(throttle)是一种优化高频执行函数的方法,它可以确保一定时间间隔内只执行一次函数。在一些需要触发频率比较高的事件,比如页面滚动、鼠标拖拽等事件中,使用函数节流可以有效提升页面性能。 基本实现原理 函数节流的基本实现原理是设置一个定时器,再限定在指定的时间内只触发一次函数。如果在等待的时间内再次触发函数,就…

    JavaScript 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部