返回顶部
首页 > 资讯 > 前端开发 > html >DOM事件中Event对象是什么
  • 701
分享到

DOM事件中Event对象是什么

2024-04-02 19:04:59 701人浏览 八月长安
摘要

这篇文章主要介绍“DOM事件中Event对象是什么”,在日常操作中,相信很多人在DOM事件中Event对象是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DOM事件中Ev

这篇文章主要介绍“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及之前版本,我们需要使用srcElement而非target。兼容方案如下:

function goFn(event) {      var event = event || window.event,      target = event.target || event.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对象是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: DOM事件中Event对象是什么

本文链接: https://lsjlt.com/news/86280.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • DOM事件中Event对象是什么
    这篇文章主要介绍“DOM事件中Event对象是什么”,在日常操作中,相信很多人在DOM事件中Event对象是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DOM事件中Ev...
    99+
    2024-04-02
  • HTML DOM Event对象有什么用
    HTML DOM Event对象用于处理事件的属性和方法。它包含了关于事件的各种信息,例如事件的类型、目标元素、触发事件的鼠标按钮或...
    99+
    2023-10-11
    HTML
  • JS中的事件对象Event实例分析
    这篇文章主要讲解了“JS中的事件对象Event实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS中的事件对象Event实例分析”吧!一、什么是事件对...
    99+
    2024-04-02
  • javascript DOM事件是什么
    这篇文章主要讲解了“javascript DOM事件是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript DOM事件是什么”吧!DOM级...
    99+
    2024-04-02
  • javascript中事件对象是什么意思
    这篇文章给大家分享的是有关javascript中事件对象是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在javascript中,事件对象(...
    99+
    2024-04-02
  • DOM对象的概念是什么
    今天小编给大家分享一下DOM对象的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2024-04-02
  • 什么是​事件循环event loop
    这篇文章给大家介绍什么是事件循环event loop,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。事件循环event loop。一个老生常谈的问题,之所以拿出来说,推荐的原因在于:通过...
    99+
    2024-04-02
  • Angular4.x Event中DOM事件和自定义事件的示例分析
    这篇文章给大家分享的是有关Angular4.x Event中DOM事件和自定义事件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Angular组件和DOM元素通过事件与...
    99+
    2024-04-02
  • HTML DOM Anchor对象的作用是什么
    HTML DOM Anchor对象是一个表示HTML中的锚点标签()的对象。它用于表示文档中的超链接,并提供了一些方法和属性来管理和...
    99+
    2023-10-12
    HTML
  • HTML DOM Audio对象的作用是什么
    HTML DOM Audio对象用于在网页中播放音频文件。它提供了一种简单的方式来控制音频的播放、暂停、停止以及调整音量等功能。通过...
    99+
    2023-10-12
    HTML
  • HTML DOM Radio对象的作用是什么
    HTML DOM Radio对象表示HTML表单中的单选按钮元素。它提供了一组属性和方法,用于操作和控制单选按钮。Radio对象的主...
    99+
    2023-10-12
    HTML
  • jquery对象与dom对象有什么不同
    这篇文章给大家介绍jquery对象与dom对象有什么不同,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。jquery是什么jquery是一个简洁而快速的JavaScript库,它具有独特的链式语法和短小清晰的多功能接口、...
    99+
    2023-06-14
  • Vue中的event对象怎么用
    本文小编为大家详细介绍“Vue中的event对象怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中的event对象怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、什么是event对象event...
    99+
    2023-06-29
  • HTML DOM MouseEvent对象有什么用
    HTML DOM MouseEvent 对象用于描述被触发的鼠标事件。它可以包含关于鼠标事件的信息,如鼠标位置、鼠标键的状态、被点击...
    99+
    2023-10-11
    HTML
  • HTML DOM DList对象有什么用
    HTML DOM DList对象用于表示HTML文档中的定义列表(definition list)元素``。定义列表是一种用于展示术...
    99+
    2023-10-11
    HTML
  • jQuery中event事件怎么用
    这篇文章主要为大家展示了“jQuery中event事件怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery中event事件怎么用”这篇文章吧。1.p...
    99+
    2024-04-02
  • js中的事件对象、事件源对象和事件流实例分析
    本篇内容主要讲解“js中的事件对象、事件源对象和事件流实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js中的事件对象、事件源对象和事件流实例分析”吧! ...
    99+
    2024-04-02
  • HTML DOM Input Radio对象有什么用
    HTML DOM Input Radio对象表示HTML表单中的单选按钮(radio button)。它可以用来获取或设置单选按钮的...
    99+
    2023-09-22
    HTML
  • HTML DOM Input FileUpload对象有什么用
    HTML DOM Input FileUpload对象用于在HTML表单中选择文件上传。它允许用户浏览文件系统,并选择一个或多个文件...
    99+
    2023-10-12
    HTML
  • nodejs中事件模块提供了什么对象
    这篇文章给大家分享的是有关nodejs中事件模块提供了什么对象的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在nodejs中,事件模块“events...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作