JavaScript事件学习小结(二)js事件处理程序

以下是“JavaScript事件学习小结(二)js事件处理程序”攻略的详细讲解:

简介

JavaScript中事件处理程序是指在用户与网页交互时由浏览器调用的函数。事件处理程序通常用来响应用户的点击、鼠标移动、键盘输入等行为。

事件处理程序的三种方式

JavaScript中有三种方式定义事件处理程序:

  1. 直接在HTML标签中使用内联事件处理程序;
  2. 在JS脚本中使用dom0级事件处理程序;
  3. 在JS脚本中使用dom2级事件处理程序。

内联事件处理程序

内联事件处理程序是把事件处理程序直接嵌入到HTML元素中的一种方式。示例如下:

<button onclick="alert('Hello World')">Click Me!</button>

内联事件处理程序的缺点是不太好维护,且不同浏览器的实现方式不一样。

dom0级事件处理程序

dom0级事件处理程序是在JS脚本中直接给HTML元素添加事件处理程序的一种方式。示例如下:

<script>
    var btn = document.getElementById("myButton");
    btn.onclick = function() {
        alert("Hello World");
    };
</script>
<button id="myButton">Click Me!</button>

dom0级事件处理程序的缺点是只能为一个事件添加一个处理程序,且添加的处理程序会覆盖之前添加的处理程序。

dom2级事件处理程序

dom2级事件处理程序是在JS脚本中通过addEventListener()或attachEvent()方法添加事件处理程序的一种方式。与dom0级事件处理程序不同,使用dom2级事件处理程序可以为同一事件添加多个处理程序,并且可以自由移除处理程序。示例如下:

<script>
    var btn = document.getElementById("myButton");
    btn.addEventListener("click", function() {
        alert("Hello World");
    }, false);
</script>
<button id="myButton">Click Me!</button>

dom2级事件处理程序为同一元素和事件类型添加多个回调函数,每个回调按照添加的顺序依次调用。可以使用removeEventListener()方法移除添加的事件处理程序。

事件对象

事件处理程序会自动传入一个事件对象event,其中包含了许多属性和方法,用来获取事件相关信息。以下是常用的事件对象属性和方法:

  • type: 事件类型
  • target: 引起事件的HTML元素
  • stopPropagation(): 阻止事件冒泡
  • preventDefault(): 阻止默认事件

示例如下:

<script>
    var a = document.getElementById("myLink");

    function handleClick(event) {
        // 取消默认行为
        event.preventDefault();

        // 阻止事件冒泡
        event.stopPropagation();

        alert("You clicked the link " + event.target.href);
    }

    a.addEventListener("click", handleClick, false);
</script>
<a href="http://www.example.com" id="myLink">Click Me!</a>

事件冒泡

事件冒泡指的是事件从触发的元素向上冒泡到父元素的过程。例如,如果点击一个按钮,该事件会先触发按钮上的事件处理程序,然后冒泡到父元素,如所属的表单、div等。如果父元素上定义了相同类型的事件处理程序,它也将被触发。

可以使用stopPropagation()方法来阻止事件冒泡。示例如下:

<div onclick="alert('Clicked DIV')">
  <button onclick="alert('Clicked BUTTON');event.stopPropagation()">Click Me!</button>
</div>

在这个例子中,如果单击按钮,则首先会调用按钮上的事件处理程序,然后停止冒泡,因此无法触发DIV元素上的事件处理程序。

结语

JavaScript事件处理程序是前端开发中常用的技术之一,可以通过多种方式定义和添加事件处理程序,最佳实践是使用dom2级事件处理程序实现事件处理。在事件处理程序中,可以利用事件对象来获取事件发生的相关信息,防止事件冲突,提高用户体验。

希望这篇攻略能帮助你更好地理解JavaScript事件处理程序,如果需要更多的示例可以访问 MDN 进行学习。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript事件学习小结(二)js事件处理程序 - Python技术站

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

相关文章

  • javascript 验证日期的函数

    我们来详细讲解一下如何利用 JavaScript 编写验证日期的函数。 函数基本结构 一个基本的 JavaScript 验证日期的函数应该具有以下结构: function validateDate(input){ // 对传入的参数 input 进行验证 // 如果符合日期格式,则返回 true,否则返回 false return true; // 或者 f…

    JavaScript 2023年5月27日
    00
  • Javascript笔记一 js以及json基础使用说明

    Javascript笔记一 js以及json基础使用说明 一、Javascript基础 1.1 基本语法 Javascript是一种动态解释性语言,用于为Web应用程序提供交互性和动态性。 以下是Javascript的基本语法: // 在Javascript中, // 之后的所有内容都是注释 /* 多行注释 可以使用这种形式 */ // 定义变量 var x…

    JavaScript 2023年5月18日
    00
  • 常见的浏览器存储方式(cookie、localStorage、sessionStorage)

    下面就来详细讲解一下常见的浏览器存储方式。 1. Cookie 1.1 什么是Cookie Cookie是一种存储在用户计算机上的小型文本文件,它存储了网站的一些信息,并且可以被后续的网页访问。通常用来存储用户的个人偏好设置或者登录状态等信息。 1.2 Cookie的使用 1.2.1 设置Cookie 在JavaScript中设置Cookie可以使用docu…

    JavaScript 2023年6月11日
    00
  • python使用数字与字符串方法技巧

    下面我来为你详细讲解“Python使用数字与字符串方法技巧”的攻略。 数字方法技巧 数字的四舍五入 在Python中使用round方法可以对数字进行四舍五入操作,round方法默认将数字保留至整数,如果要想保留小数,可以在round方法中传入第二个参数,指定保留小数的位数。下面是一段示例代码: num = 3.14159 print(round(num)) …

    JavaScript 2023年5月28日
    00
  • javascript原生ajax写法分享

    下面是“javascript原生ajax写法分享”的完整攻略: 什么是ajax? Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,利用异步传输数据,实现网页无需刷新就能实现获取和更新数据。它最大的优点就是在不刷新页面的情况下与服务器端进行通信,提高用户的交互体验。 原生ajax实现步骤 步骤一:创建…

    JavaScript 2023年6月11日
    00
  • 深入分析下javascript中的[]()+!

    深入分析下 JavaScript 中的 []()+! 可以分成以下三个部分进行讲解: 1. [] 在 JavaScript 中,[] 表示数组。通过 [] 可以定义一个空数组,如下所示: const arr = []; 同时,[] 还可以用来获取数组的某个元素。例如: const arr = [1, 2, 3]; const firstElement = a…

    JavaScript 2023年6月11日
    00
  • BootstrapValidator不触发校验的实现代码

    BootstrapValidator是一个基于Bootstrap的jQuery表单验证插件,可以方便地在页面中对表单进行校验。有时候需要手动控制校验,在一些特定的场景中,需要用户触发校验的时候才进行校验,那么在这种情况下,我们应该如何实现呢? 以下是实现“BootstrapValidator不触发校验”的完整攻略: 1. 关闭自动校验 首先,需要将Boots…

    JavaScript 2023年6月10日
    00
  • javascript 闭包函数做显隐内容

    下面是详细讲解“JavaScript闭包函数做显隐内容”的完整攻略。 什么是JavaScript闭包函数 JavaScript闭包函数是指内部函数可以访问外部函数的变量,即使外部函数已经执行完毕。这是由于内部函数形成了一个闭包环境,保持了对其父级作用域的引用。通过此特性,闭包函数经常被用来保护私有变量并创建模块化结构。 如何通过闭包函数来做显隐内容 通过闭包…

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