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

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 Global eval() 函数

    以下是关于JavaScript Global对象中eval()函数的完整攻略,包括两个示例说明。 JavaScript Global对象中的eval()函数 JavaScript Global对象中的eval()函数用于将一个字符串作为JavaScript代码进行执行。eval()函数可以将一个字符串解析为JavaScript代码,并执行该代码。eval()…

    JavaScript 2023年5月11日
    00
  • JS正则表达式验证端口范围(0-65535)

    下面是JS正则表达式验证端口范围的攻略: 题目描述 要求用JS正则表达式验证给定的端口范围是否符合规范,即端口号范围应该为0-65535。 解法 我们可以使用正则表达式来判断给定的端口范围是否符合要求。 正则表达式的规则如下: 端口号的范围为0-65535; 0开头的数字只能为0; 1-9开头的数字可以是单个1-9,两位数字或三位数字; 数字不能有前导0。 …

    JavaScript 2023年6月10日
    00
  • JS实现页面跳转与刷新的方法汇总

    下面就来详细讲解一下“JS实现页面跳转与刷新的方法汇总”的完整攻略。 1. 实现页面跳转的方法 1.1 使用 window.location.replace 方法实现页面跳转 使用 window.location.replace 方法可以在不记录浏览器历史记录的情况下,实现页面跳转,具体代码如下: window.location.replace(‘https…

    JavaScript 2023年6月11日
    00
  • JS中Date的一些常用方法小结

    JS中Date的一些常用方法小结 Date对象概述 在JavaScript中,Date对象用来操作日期和时间。它的构造函数语法如下: let date = new Date(); 默认情况下,Date对象会返回当前时间。其中,构造函数可以传入多个参数来设置具体的时间。比如: let date = new Date(2021, 11, 31, 23, 59, …

    JavaScript 2023年5月27日
    00
  • JavaScript实现数组对象去重的多种方法

    下面我来为大家详细讲解“JavaScript实现数组对象去重的多种方法”。 一、背景介绍 在前端开发中,我们经常需要对数组进行去重操作,以减少某些操作的时间复杂度。在JavaScript中,实现数组对象去重的方法有很多,也存在各自的优缺点。下面我将为大家介绍一些常用的去重方法以及其优缺点。 二、方法一:利用Set(ES6) 由于ES6出现了Set数据类型,所…

    JavaScript 2023年5月27日
    00
  • JavaScript利用Immerjs实现不可变数据

    针对“JavaScript利用Immerjs实现不可变数据”的完整攻略,我为大家提供以下详细讲解。 什么是Immerjs Immerjs是一个JavaScript库,可以让您使用不可变数据避免更改源数据。它通过提供一种易于使用的机制来撰写交错对象更新(Immerjs的核心)。 Immerjs通过使用JavaScript Proxy API来实现这些功能,而P…

    JavaScript 2023年6月10日
    00
  • json格式数据的添加,删除及排序方法

    下面我来详细讲解一下“JSON格式数据的添加、删除及排序方法”。 JSON格式数据简介: JSON是一种轻量级的数据格式,它常用于web应用程序之间的数据交换,是JavaScript对象的文本表示。在JSON格式中,数据以键值对的形式存在,用逗号分隔开来。关键字和值之间用冒号“:”分隔,大括号({})用于定义对象,中括号([])用于定义数组。 下面我将分别讲…

    JavaScript 2023年5月27日
    00
  • javascript中this关键字详解

    JavaScript中this关键字详解 在JavaScript中,this关键字用来引用当前函数的执行上下文。它可以用来引用当前正在执行的对象,这使得在函数内部可以访问该对象的属性和方法。 1. this的值 this的值取决于它被使用的上下文。 1.1 全局上下文 在全局上下文中,this指向全局对象。在浏览器中,这个对象就是window对象。 cons…

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