有关javascript中事件对象e

news2025/7/7 23:30:33

一、简单认识e

事件对象e,是event的简称。当一个事件被触发时候,这个事件的有关数据都会被存储在一个事件对象e里面,这个对象e有许多固定方法提供给我们查看里面各种数据。

二、关于e对象的常用属性介绍

 

 1. e.eventPhase查看事件触发所处的阶段

值为1表示捕获阶段 ;值为2表示目标阶段;值为3表示冒泡阶段

2.e.target  用来获取触发的事件的元素

<!DOCTYPE html>
<html lang="en">

<head>
    <title>Document</title>
    <style>
        #box1 {
            width: 300px;
            height: 300px;
            background-color: yellowgreen;
        }

        #box2 {
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        #box3 {
            width: 100px;
            height: 100px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div id="box1">box1
        <div id="box2">box2
            <div id="box3">box3</div>
        </div>
    </div>
    <script>
        // 获取元素
        var box1 = document.getElementById("box1");
        var box2 = document.getElementById("box2");
        var box3 = document.getElementById("box3");

        // 添加事件
        box1.onclick = function (e) {
            // e指的就是存储事件对象的参数,只要事件被触发(即box1被点击),e就会自动接收数据
            e = e || window.event; // 解决兼容问题
            console.log(e.target);
        };
    </script>
</body>

</html>

页面展示效果

 当点击最外层的盒子时,控制台输出(最外层盒子)

 当点击最里面的box3时,控制台输出:

 

3.当所有嵌套元素都绑定事件后,执行顺序:

<!DOCTYPE html>
<html lang="en">

<head>
    <title>Document</title>
    <style>
        #box1 {
            width: 300px;
            height: 300px;
            background-color: yellowgreen;
        }

        #box2 {
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        #box3 {
            width: 100px;
            height: 100px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div id="box1">box1
        <div id="box2">box2
            <div id="box3">box3</div>
        </div>
    </div>
    <script>
        // 获取元素
        var box1 = document.getElementById("box1");
        var box2 = document.getElementById("box2");
        var box3 = document.getElementById("box3");


        // /当给所有嵌套元素绑定点击事件时,事件处理函数默认在冒泡阶段执行(即当点击最内层元素时,会从内到外依次触发)
        // 添加事件
        box1.onclick = function (e) {
            // e指的就是存储事件对象的参数,只要事件被触发(即box1被点击),e就会自动接收数据
            e = e || window.event; // 解决兼容问题
            console.log('box1');
        };
        box2.onclick = function (e) {
            // e指的就是存储事件对象的参数,只要事件被触发(即box1被点击),e就会自动接收数据
            e = e || window.event; // 解决兼容问题
            console.log('box2');
        };
        box3.onclick = function (e) {
            // e指的就是存储事件对象的参数,只要事件被触发(即box1被点击),e就会自动接收数据
            e = e || window.event; // 解决兼容问题
            console.log('box3');
        };
    </script>
</body>

</html>

页面展示:

 当点击最内层box3时,控制台会依次输出 box3 box2 box1

当点击中间的box2时,控制台会依次输出 box2 box1

4.e.currentTarget用于获取触发事件的源元素

<!DOCTYPE html>
<html lang="en">

<head>
    <title>Document</title>
    <style>
        #box1 {
            width: 300px;
            height: 300px;
            background-color: yellowgreen;
        }

        #box2 {
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        #box3 {
            width: 100px;
            height: 100px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div id="box1">box1
        <div id="box2">box2
            <div id="box3">box3</div>
        </div>
    </div>
    <script>
        // 获取元素
        var box1 = document.getElementById("box1");
        var box2 = document.getElementById("box2");
        var box3 = document.getElementById("box3");

        box1.onclick = function (e) {
            // e指的就是存储事件对象的参数,只要事件被触发(即box1被点击),e就会自动接收数据
            e = e || window.event; // 解决兼容问题
            console.log(e.currentTarget);  ///获取触发事件的源元素

            // 也就是说,当点击box1,box2,时,也会出书box1元素
            
        };
    </script>
</body>

</html>

上面的代码是只给最外层盒子box1绑定点击事件;

当我们点击最内层盒子box3,或者中间的盒子box2,e.currentTarget都会输出box1(即最外层盒子)

5.e.type获取事件类型,取值有click、blur、focus、mousedown、mouseup等等

6.e.preventDefault( )阻止默认行为

7.e.stopPropagation()阻止冒泡行为  (注:只有当bubbles为true时可以使用)

注意:使用addEventListener添加的事件处理程序,只能使用removeEventListener来移除

格式:

var btn=document.getElementById('myBtn')

添加点击事件
btn.addEventListener("click",handleClick,false)

移除点击事件
btn.removeEventListener("click",handleClick,false)

特别注意的是:绑定事件处理函数和移除事件处理函数必须是同一个,否则无效

///绑定点击事件和移除点击事件的函数必须是同一个,否则无效


///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
///  下面的移除点击事件无效
var btn=document.getElementById('myBtn')
btn.addEventListener("click",()=>{
        console.log(this.id)
    }
fasle)

btn.removeEventListener("click",()=>{
   console.log(this.id)
},false)   无效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/6901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL索引原理笔记

注意&#xff1a;本博客为个人学习记录&#xff0c;不保证正确性&#xff0c;仅供参考指正 MySQL索引原理以及SQL优化 文章目录MySQL索引原理以及SQL优化索引与约束覆盖索引最左匹配规则索引下推&#xff08;面试重点&#xff09;索引存储索引失效如何解决sql比较慢的问题索引…

【JavaWeb】JSP(172-190)

172.Jsp-什么是jsp&#xff0c;以及它有什么作用 jsp 的全换是 java server pages。Java 的服务器页面。 jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据。 因为 Servlet 程序回传 html 页面数据是一件非常繁锁的事情。开发成本和维护成本都极高。 Servlet 回传 htm…

大白话讲解MySQL 索引,页分裂,行溢出,事务

目录 一、索引 索引是什么&#xff0c;页分裂 页的结构 mysql怎么查询数据 二、页合并 三、行溢出 四、事务 事务四大特性 1、原子性 2、一致性 3、隔离性 4、持久性 事务隔离级别 隔离级别导致的问题 隔离级别与锁的关系 锁与快照读、当前读的关系 RR快照读与…

网页信息采集-网页数据采集方法

随着社会不停的发展。人们也是越来越离不开互联网&#xff0c;今天小编就给大家盘点一下免费的网页信息采集&#xff0c;只需要点几下鼠标就能轻松爬取数据&#xff0c;不管是导出excel还是自动发布到网站都支持。详细参考图片一、二、三、四&#xff01; 企业人员 通过爬取动…

[附源码]计算机毕业设计JAVA创意众筹网站

[附源码]计算机毕业设计JAVA创意众筹网站 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis M…

JavaScript历史上的今天是星期几

前言 &#x1f44f;这个案例有很多点是我之前不知道的&#xff08;因为是小白&#xff09;&#xff0c;所以很值得学习&#xff0c; ✍编程不是打字机&#xff0c;⭐争取明白每个细节&#xff0c;并努力做的更好 步骤 1.html布局&#xff0c;一个下拉菜单&#xff08;如图&…

独家巨献!阿里专家兼Github贡献者业“大师级Dubbo实战笔记”入门到成神

Apache Dubbo是一款RPC服务开发框架&#xff0c;那何为RPC呢&#xff1f;全称为Remote Procedure Call&#xff0c;翻译过来就是远程过程调用。 使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力&#xff0c; 利用 Dubbo 提供的丰富服务治理特性&#xff0c;可…

ZYNQ使用AXI4-HP接口总线读取DDR中的数据

一、前言 最近笔者在做项目的时候需要使用zynq中的AXI4-HP总线在PL端读取DDR中的数据这种功能&#xff0c;但是网上很多历程对于这方面只是创建了一个官方提供的IP核用于测试&#xff0c;并且每次写入和读取的长度为4K字节。所以为了满足我自己的项目需求&#xff0c;笔者将官…

电脑桌面图标不见了怎么回事?正确的找回图标的2个方案

最近遇到很多用户朋友说自己的电脑桌面图标不见了&#xff0c;觉得很奇怪。用户以为是系统原因造成的。电脑桌面图标不见了怎么回事&#xff1f;图标删除了怎么办&#xff1f;这篇文章就给大家分享如何找回电脑桌面消失的图标&#xff0c;一起来看看吧&#xff01; 一、找回电脑…

DTPA PEG 异硫氰酸荧光素,DTPA PEG FITC,FITC-PEG-DTPA

产品名称&#xff1a;DTPA PEG 异硫氰酸荧光素 英文名称&#xff1a;DTPA PEG FITC&#xff0c;FITC-PEG-DTPA CAS&#xff1a;668-000-2 产地&#xff1a;西安 规格&#xff1a;1mg 5mg 10mg 纯度&#xff1a;99% 厂家&#xff1a;西安齐岳生物科技有限公司 用途&#…

arthas的监控java性能

目录1 arthas简介2 arthas下载3 arthas的使用3.1 arthas启动3.2 常用命令3.2.1 dashboard3.2.2 thread3.2.3 jad3.2.4 watch3.2.5 getstatic3.2.6 heapdump3.2.6.1 dump到指定的文件3.2.6.2 dump live 对象3.2.6.3 dump 到临时文件3.2.7 jvm3.2.8 logger3.2.9 mbean3.2.9.1 列出…

Baklib|我的企业是不是需要一个维基页面呢?

你很可能已经听说过维基百科。事实上&#xff0c;我们大多数人几乎每天都在使用维基百科来获取有关历史事件、名人或世界各地的有用信息。但是你知道公司也可以创建和维护他们自己的wiki页面吗? 随着时间的推移&#xff0c;公司会积累大量的信息。如果没有一个好的方法来存储…

Java:为什么要更新Java应用程序?

27年来&#xff0c;Java一直是企业软件开发中最流行的编程语言之一。世界上无数的系统都是使用这种广为人知的语言构建的。 传统的Java应用程序是独一无二的。它们的包中包含了运行应用程序所需的一切&#xff0c;但整体性使得开发人员在进行更改时很难保持敏捷。开发人员必须从…

项目实战——实现注册与登录模块(结尾)

目录 一、整体框架 二、前端页面授权 三、实现注册页面 四、实现登录状态的持久化 一、整体框架 二、前端页面授权 当我们登录网站的时候&#xff0c;如果没有登录&#xff0c;强制让用户重定向到 登录界面 在 router 目录下的 index.js 文件下实现。 router -> index.js…

DIVFusion:首个耦合互促低光增强图像融合的框架

DIVFusion:首个耦合互促低光增强&图像融合的框架DIVFusion:首个耦合互促低光增强&图像融合的框架写在前面问题引入Motivation主要贡献网络架构实验验证融合性能目标检测性能消融实验结论写在最后DIVFusion:首个耦合互促低光增强&图像融合的框架 论文&#xff1a;h…

攻防世界Running

Running 题目描述&#xff1a;无 题目环境&#xff1a;https://download.csdn.net/download/m0_59188912/87016663 一个可执行文件&#xff0c;执行后显示error&#xff0c;尝试binwalk文件分离。 命令&#xff1a;binwalk -e run.exe浏览分离出来的文件。 末尾发现一个run.ex…

mannose-CHO|甘露糖-醛基|甘露糖-聚乙二醇-醛基|醛基-PEG-甘露糖

mannose-CHO|甘露糖-醛基|甘露糖-聚乙二醇-醛基|醛基-PEG-甘露糖 羰基中的一个共价键跟氢原子相连而组成的一价原子团&#xff0c;叫做醛基&#xff0c;醛基结构简式是-CHO&#xff0c;醛基是亲水基团&#xff0c;因此有醛基的有机物&#xff08;如乙醛等&#xff09;有一定的…

APS高级排产软件在快消品行业的应用

快消行业是指消费频率高、使用时限短、拥有广泛的消费群体、对于消费的便利性要求很高的商品销售行业。快消行业的销售渠道种类多而复杂&#xff0c;传统业态和新兴业态等多种渠道并存。快消行业集中度逐步上升&#xff0c;竞争度加大。 随着快速消费品市场的复苏&#xff0c;经…

CNN学习笔记

目录 如何理解卷积层和池化层&#xff1f; 机器视角&#xff1a;长文揭秘图像处理和卷积神经网络架构 卷积神经网络 - 基础知识 激活函数的作用是什么&#xff1f; 激活函数&#xff08;加入非线性因素&#xff09; 提高模型鲁棒性&#xff08;抗干扰能力&#xff09;&#…

时间复杂度和空间复杂度详解

文章目录 引入 一、时间复杂度的详解及例题 1、时间复杂度的概念 2、时间复杂度的例题训练 2.1 实题训练1 2.2 实题训练2 2.3 实题训练3 2.4 实题训练4 2.5 大O符号&#xff08;Big O notation)的函数绘图 二、空间复杂度的详解及例题 1、空间复杂的的概念 2、空间复杂度…