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日

相关文章

  • js中的鼠标事件有哪些(用法示例学习进阶)

    JS中的鼠标事件是指在浏览器中用户和鼠标交互时,所触发的事件。在前端开发中,这些鼠标事件被广泛应用于各种网站和应用程序中。下面将介绍一些常用的鼠标事件以及它们的用法示例。 鼠标单击事件(click) 鼠标单击事件(click)是指在鼠标左键单击时所触发的事件。在页面中使用最为广泛的是按钮的单击事件。下面是一个示例,当按钮被单击时,将弹出一个提示框。 <…

    JavaScript 2023年6月11日
    00
  • JS轮播图中缓动函数的封装

    如果你想实现一个流畅的 JS 轮播图,那么你需要考虑如何使用缓动函数来实现平滑的动画效果。在本篇攻略中,我们将会详细讲解如何封装缓动函数,并结合两个简单的示例来演示如何使用。 一、什么是缓动函数? 缓动函数是一种常见的 JavaScript 动画技术,它使用数学公式来控制动画中的速度变化。常见的缓动函数包括线性缓动函数、加速缓动函数和弹性缓动函数等。 在实现…

    JavaScript 2023年6月11日
    00
  • js 判断上传文件大小及格式代码

    下面是关于 JS 判断上传文件大小及格式的完整攻略。 判断上传文件大小 如果想在上传文件时限制上传文件大小,可以使用以下代码进行判断: const fileSizeLimit = 1024 * 1024; // 限制 1MB const file = document.querySelector(‘input[type="file"]’)…

    JavaScript 2023年5月27日
    00
  • JavaScript把局部变量变成全局变量的方法

    在JavaScript中,如果在一个函数内部声明一个变量,它将会被视为局部变量,只能在那个函数内部使用。但是,有时我们需要将局部变量变为全局变量,这时可以使用以下方法: 方法一:全局变量赋值 将变量赋值给全局变量,就可以使变量成为全局变量。 function testFunction() { var localVariable = "I am a …

    JavaScript 2023年6月11日
    00
  • 微信小程序自定义用户登录弹窗

    下面是关于微信小程序自定义用户登录弹窗的完整攻略。 一、前置工作 在实现自定义用户登录弹窗之前,我们需要完成以下几项前置工作: 确定小程序是否需要用户登录才能使用; 获取用户登录态,并保存; 编写自定义登录组件。 二、获取用户登录态 小程序自有用户登录态,需要用户授权登录才能获取,授权登录分为静默授权和用户授权,其中静默授权不需要用户进行任何操作即可获取用户…

    JavaScript 2023年6月11日
    00
  • 通过JavaScript实现动态圣诞树详解

    下面我将详细讲解“通过JavaScript实现动态圣诞树”的攻略。 1. 准备工作 1.1 HTML 首先,在HTML中,我们需要创建一个canvas元素,用于绘制圣诞树。可以按照以下代码创建: <canvas id="canvas"></canvas> 1.2 CSS 接着,在CSS中,我们需要设置canvas元…

    JavaScript 2023年6月11日
    00
  • Javascript Date getUTCMilliseconds() 方法

    JavaScript 中的 getUTCMilliseconds() 方法用于获取 UTC 时间的毫秒部分。在本教程中,我们将详细介绍 getUTCMilliseconds() 方法的使用方法。 getUTCMilliseconds() 方法的基本语法如下: date.getUTCMilliseconds() 其中,date 是获取毫秒部分的 UTC 日期对…

    JavaScript 2023年5月11日
    00
  • 一文搞懂JavaScript中原型与原型链

    一文搞懂JavaScript中原型与原型链 在JavaScript中,每个对象都有一个原型对象,这个对象可以拥有自身的属性和方法,并且还可以指向另一个原型对象,称为原型链。理解原型和原型链的概念,对于JavaScript的面向对象编程是非常重要的。在本文中,我们将详细讲解JavaScript中原型和原型链的概念及其实现方式。 原型 在JavaScript中,…

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