我的编程空间,编程开发者的网络收藏夹
学习永远不晚

DOM事件中Event对象是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

DOM事件中Event对象是什么

这篇文章主要介绍“DOM事件中Event对象是什么”,在日常操作中,相信很多人在DOM事件中Event对象是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DOM事件中Event对象是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

事件对象(event  object)指的是与特定事件相关且包含该事件详细信息的对象。我们可以通过传递给事件处理程序的参数获取事件触发后所产生的一系列方法和属性。

Event对象

Event对象其实是一个事件处理程序的参数,当调用事件时,我们只需要将其传入事件函数就可以获取。代码如下:

function getEvent(event) {  event = event || window.event;  }

上面的事件函数传入了一个名叫Event的参数作为事件对象,同时做了浏览器兼容处理。在IE8及以前本版之中,通过设置属性注册事件处理程序时,调用的时候并未传递事件对象,需要通过全局对象window.event来获取。所以上述代码中我们利用  || 来做判断,如果event对象存在则使用event,不存在则使用window.event。

Event对象包含了几个方法和多个属性,通过这些方法和属性我们可以获取事件的详细信息并进行相关处理。

Event对象方法

Event对象主要有以下两个方法,用于处理事件的传播(冒泡、捕获)和事件的取消。

1.stopPropagation

stopPropagation方法主要用于阻止事件的进一步传播,比如阻止事件继续向上层冒泡。

function getEvent(event) {  event.stopPropagation();  }  child.addEventListener('click', getEvent, false);

如果你需要兼容IE8及以下版本浏览器,则需要利用cancelBubble来代替stopPropagation,因为低版本IE不支持stopPropagation方法。

function getEvent(event) {     event = event || window.event;              if (event.stopPropagation) {         event.stopPropagation();     } else {         event.cancelBubble = true;     } }

cancelBubble是IE事件对象的一个属性,设置这个属性为true能阻止事件进一步传播。

2.perventDefault

perventDefault方法用于取消事件的默认操作,比如a链接的跳转行为和表单自动提交行为就可以用perventDefault方法来取消。代码如下:

<a id="go" href="https://www.baidu.com/">禁止跳转</a> var go = document.getElementById('go');  function goFn(event) {     event.preventDefault();      console.log('我没有跳转!'); }  go.addEventListener('click', goFn, false);

通过preventDefault,我们成功阻止了a链接的跳转行为。不过,在IE9之前的浏览器中需要设置returnValue属性为false来实现。如下:

function goFn(event) {     event = event || window.event;          if (event.preventDefault) {         event.preventDefault();     } else {         event.returnValue = false;     }          console.log('我没有跳转!'); }

除了以上Event对象的两个主要方法,当前DOM事件规范草案在Event对象上还定义了另一个方法,命名为stopImmediatePropagation。

3.stopImmediatePropagation

和stopPropagation相比,stopImmediatePropagation同样可以阻止事件的传播,不同点在于其还可以把这个元素绑定的同类型事件也阻止了。如:

var go = document.getElementById('go');  function goFn(event) {     event.preventDefault();     event.stopImmediatePropagation(); // 阻止事件冒泡并阻止同类型事件          console.log('我没有跳转!'); }  function goFn2(event) {     console.log('我是同类型事件!'); }  go.addEventListener('click', goFn, false); go.addEventListener('click', goFn2, false);

我们在a链接上继续加了一个点击事件,如果我们在goFn方法中添加了stopImmediatePropagation方法,那么goFn2方法将不会被执行,同时也不会将点击事件冒泡至上层。

需要注意的是,stopImmediatePropagation目前一部分浏览器尚不支持,但是像jQuery这样的库封装了跨平台的stopImmediatePropagation方法。

Event对象属性

与Event对象的方法相比,因Event对象的属性相对较多,文本无法一一讲解,所以主要介绍实际项目中常用的Event对象属性。

1.type属性

通过type我们可以获取事件发生的类型,比如点击事件我们获取的是'click'字符串。

var go = document.getElementById('go');      function goFn(event) {  console.log(event.type); // 输出'click'  }  go.addEventListener('click', goFn, false);

2.target属性

target属性主要用于获取事件的目标对象,比如我们点击a标签获取的是a标签的html对象。

var go = document.getElementById('go');  function goFn(event) {      var target = event.target;      console.log(target === go) // 返回true  }  go.addEventListener('click', goFn, false);

在IE8及之前版本,我们需要使用class="lazy" data-srcElement而非target。兼容方案如下:

function goFn(event) {      var event = event || window.event,      target = event.target || event.class="lazy" data-srcElement;      console.log(target === go) // 返回true  }

3. 鼠标事件属性

在用鼠标触发事件时,主要的事件属性包含鼠标的位置和按键的状态,比如:clientX和clientY指定了鼠标在窗口坐标中的位置,button和which指定了按下的鼠标键是哪个。

function moveFn(event) {     console.log(event.screenX) // 获取鼠标基于屏幕的X轴坐标     console.log(event.screenY) // 获取鼠标基于屏幕的Y轴坐标     console.log(event.clientX) // 获取鼠标基于浏览器窗口的X轴坐标     console.log(event.clientY) // 获取鼠标基于浏览器窗口的Y轴坐标     console.log(event.pageX) // 获取鼠标基于文档的X轴坐标     console.log(event.pageY) // 获取鼠标基于文档的Y轴坐标 }  function clickFn(event) {     console.log(event.button) // 获取鼠标按下的键。非IE浏览器中0为鼠标左键,1为鼠标中键,2为鼠标右键     console.log(event.which) // 获取指定事件上哪个键盘键或鼠标按钮被按下 }  document.addEventListener('mouseover', moveFn, false); document.addEventListener('click', clickFn, false);

4.键盘事件属性

在用键盘触发事件时,主要的事件属性包含键盘的按键keyCode和是否按下特殊键,比如:keyCode指定了按下键的键码值,ctrlKey指定是否按下了ctrl键。

function keyFn(event) {     console.log(event.keyCode); // 获取按下键的键码值     console.log(event.ctrlKey); // 获取是否按下了ctrl键     console.log(event.shiftKey); // 获取是否按下了shift键     console.log(event.altKey); // 获取是否按下了alt键     console.log(event.metaKey); // 获取是否按下了meta键 }  document.addEventListener('keyup', keyFn, false);

到此,关于“DOM事件中Event对象是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

DOM事件中Event对象是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

HTML DOM Event对象有什么用

HTML DOM Event对象用于处理事件的属性和方法。它包含了关于事件的各种信息,例如事件的类型、目标元素、触发事件的鼠标按钮或键盘按键等。使用Event对象,可以执行以下操作:1. 获取事件的类型:可以使用Event对象的type属性
2023-10-11

HTML DOM Anchor对象的作用是什么

HTML DOM Anchor对象是一个表示HTML中的锚点标签()的对象。它用于表示文档中的超链接,并提供了一些方法和属性来管理和操作超链接。Anchor对象的作用包括:1. 跳转到其他页面:使用Anchor对象的href属性可以获取或设
2023-10-12

HTML DOM Radio对象的作用是什么

HTML DOM Radio对象表示HTML表单中的单选按钮元素。它提供了一组属性和方法,用于操作和控制单选按钮。Radio对象的主要作用包括以下几个方面:1. 获取和设置单选按钮的属性:通过Radio对象,可以获取和设置单选按钮的各种属性
2023-10-12

HTML DOM Audio对象的作用是什么

HTML DOM Audio对象用于在网页中播放音频文件。它提供了一种简单的方式来控制音频的播放、暂停、停止以及调整音量等功能。通过Audio对象,可以加载音频文件并在网页中播放,同时还可以通过事件来监听音频的播放状态,如播放完成、暂停等。
2023-10-12

java中什么是对象

本篇文章为大家展示了java中什么是对象,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网
2023-06-14

java中什么是类,什么是对象

类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所
java中什么是类,什么是对象
2020-06-27

c++中什么是类,什么是对象

c++kquote>类在 c++ 中代表对象集合的模板,定义了对象的属性(数据成员)和行为(成员函数)。对象是类的实例,拥有类中的所有数据成员和成员函数,由类创建,并使用与类相同的数据类型。类和对象在 C++ 中的作用什么是类?类是
c++中什么是类,什么是对象
2024-05-08

Java使用的对象中间件是什么

Java使用的对象中间件有许多不同的选择,其中一些包括:1. Java Message Service(JMS):JMS是Java平台上的标准消息传递API,它提供了一种可靠的异步通信机制,允许不同应用程序之间以消息的形式进行通信。2. J
2023-10-07

.NET中怎么将事件视为对象

这篇“.NET中怎么将事件视为对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“.NET中怎么将事件视为对象”文章吧。将事件
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录