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

Web的事件知识点有哪些

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

Web的事件知识点有哪些

本篇内容主要讲解“Web的事件知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web的事件知识点有哪些”吧!

web中的事件

事件并不是JavaScript的核心部分,他们是在浏览器的Web Api中定义的。下面列举的几种情况,都属于发生了事件。

  • 用户在某个元素上点击鼠标或悬停光标。

  • 用户在键盘中按下某个按键。

  • 用户调整浏览器的大小或者关闭浏览器窗口。

  • 一个网页停止加载。

  • 提交表单。

  • 播放、暂停、关闭视频。

  • 发生错误。

我们可以在代码中使用事件处理器来处理各种事件。

事件模型

假设我们有这么一段html代码:

<html> <body> <table> <tbody> <tr> <td>Shady Grove</td> <td>Aeolain</td> </tr> <tr> <td>Over the River, Charile</td> <td>Dorian</td> </tr> </tbody> </table> </body></html>

如果我们点击over the Rive, Charile,整个事件流程如下:

Web的事件知识点有哪些

事件会经历三个阶段,上图中分别由红色、蓝色、绿色标出。第一阶段为红色,事件流从根元素一直走到点击的目标元素,这个过程称为捕获。第二阶段为蓝色。这个阶段中,会处理点击事件,为事件加上各种属性等。第三阶段为绿色,事件又回重新回到根元素,这个过程称为冒泡。在整个事件流中,我们在事件流经过的任何元素上,都能监听到该事件,从而进行处理。

一般建议在冒泡阶段处理事件,这样可以最大限度的兼容各种浏览器。

注意:blur、focus、load、unload 等几个事件不会冒泡。

原因是在于:这些事件仅发生于自身上,而它的任何父节点上的事件都不会产生,所有不会冒泡。

我们可以查看事件的bubbles属性,来判断该事件是否可以冒泡。

事件处理

EventTarget

EventTarget是一个由可以接收事件的对象实现的接口,并且可以为它们创建侦听器。Web中的所有事件处理器都是由EventTarget"提供"的。

Web的事件知识点有哪些

addEventListener

该方法将指定的监听器注册到 EventTarget 上,当该对象触发指定的事件时,指定的回调函数就会被执行。 事件目标可以是一个文档上的元素 Element,Document和Window或者任何其他支持事件的对象 (比如 XMLHttpRequest)。其标准语法如下:

target.addEventListener(type, listener[, options]);

target.addEventListener(type, listener[, useCapture]);

target.addEventListener(type, listener[, options]);target.addEventListener(type, listener[, useCapture]);预览
  • type: 字符串。表示事件类型,比如: click。

  • listener:函数。事件触发时的回调函数。这个函数会接受一个Event事件对象。这个Event事件对象中,包含了以下重要的属性和方法(这里只列举出常用的)

Web的事件知识点有哪些

  • options :对象。指定一个listener的配置参数。

Web的事件知识点有哪些

  • useCapture:布尔值,可选。默认为false,事件在冒泡过程中触发listener。

removeEventListener

删除使用addEventListener注册到target上的事件。标准语法:

target.removeEventListener(type, listener[, options]);target.removeEventListener(type, listener[, useCapture]);

为了提高页面性能,我们在处理完某事件,并且不用继续监听该事件时,可以将之前注册的事件监听函数移除。需要注意的是,如果注册事件时,在捕获或冒泡阶段均进行了监听,那么移除时需要分别移除。

currentTarget 与 target的区别

在事件处理函数中,我们经常会使用到事件的这两个属性。currentTarget表示注册事监听的对象。target表示事件起源的对象。举个例子:

<div id="father"> <div id="child1">child1</div> <div id="child2">child2</div> <div id="child3">child3</div></div>document.getElementById('father').addeventListener('click', function(e){ console.log(e.currentTarget); console.log(e.target);});

我们将事件处理函数绑定在father上。现在,如果我们点击的是child1,由于child1是事件源,那么e.target就是child1。而我们的事件处理函数是绑定在father上的,所以,e.currentTarget就是father。

这一点在开发过程中需要特别注意。

事件代理

这个概念依赖于这样一个事实,如果你想要在大量子元素中单击任何一个都可以运行一段代码,您可以将事件监听器设置在其父节点上,并将事件监听器气泡的影响设置为每个子节点,而不是每个子节点单独设置事件监听器。举个例子:

<ul><li>1<li> <li>2<li> <li>3<li> <li>4<li> <li>5<li> <li>6<li> <li>7<li> <li>8<li> <li>9<li></ul>

我们要实现点击每一个li的时候,输出li内对应的数字,我们当然可以直接在所有的li上分别绑定一个事件。但是这样会造成内存的浪费。我们可以只在ul上绑定一个事件,根据事件的target来获取当前点击的li,拿到该li内对应的数字。

document.querySelector('ul').addEventListener('click', function(e){ if(e.target && e.target.nodeName === "LI") {console.log(e.target.innerHTML);}});

自定义事件

最新的DOM标准允许我们自定义事件。直接看下面的例子。

var fakeNode = document.createElement('Coy'); // 创建一个自定义元素var evt = document.createEvent('Event'); // 创建一个自定义事件var evtType = 'test'; // 自定义事件的类型// 事件监听函数fakeNode.addEventListener(evtType, function(e){  console.log(e); // e.type === 'test';}, false);// 初始化事件。// initEvent用法:event.initEvent(type, bubbles, cancelable);evt.initEvent(evtType, false, false); // 向fakeNode派发evt事件fakeNode.dispatchEvent(evt);

到此,相信大家对“Web的事件知识点有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

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

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

Web的事件知识点有哪些

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

下载Word文档

猜你喜欢

Web的事件知识点有哪些

本篇内容主要讲解“Web的事件知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web的事件知识点有哪些”吧!web中的事件事件并不是JavaScript的核心部分,他们是在浏览器的We
2023-06-02

Spring的事件机制知识点有哪些

这篇文章主要讲解了“Spring的事件机制知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring的事件机制知识点有哪些”吧!同步事件和异步事件同步事件: 在一个线程里,按顺序
2023-06-22

Spring事务的知识点有哪些

这篇文章主要介绍“Spring事务的知识点有哪些”,在日常操作中,相信很多人在Spring事务的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spring事务的知识点有哪些”的疑惑有所帮助!接下来
2023-06-02

DDD事件驱动与CQRS知识点有哪些

这篇文章主要讲解了“DDD事件驱动与CQRS知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“DDD事件驱动与CQRS知识点有哪些”吧!一、前言:从物流详情开始大家对物流跟踪都不陌生
2023-06-05

web的路由协议有哪些知识点

本篇内容主要讲解“web的路由协议有哪些知识点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web的路由协议有哪些知识点”吧!一:MAC头和IP头1.在MAC头里面,先是目标MAC地址,再是源M
2023-06-04

Web测试入门知识点有哪些

本篇内容介绍了“Web测试入门知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Web应用程序应用程序有两种模式,C/S和B/S
2023-06-05

Web安全测试知识点有哪些

这篇文章主要介绍“Web安全测试知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Web安全测试知识点有哪些”文章能帮助大家解决问题。什么是安全测试?安全测试就是要提供证据表明,在面对敌意和
2023-06-05

Web安全学习知识点有哪些

这篇文章主要讲解了“Web安全学习知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Web安全学习知识点有哪些”吧!一名合格的Web安全工程师是要具备很多的知识点,不但要对网站架构熟
2023-06-27

db2事件监视器类型知识点有哪些

本篇内容介绍了“db2事件监视器类型知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!可使用事件监视器来捕获与系统上发生的许多不同事
2023-06-02

web前端的数据结构知识点有哪些

本篇内容介绍了“web前端的数据结构知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1)什么叫算法?算法就是计算或解决问题的步骤。
2023-06-27

SwiftUI的知识点有哪些

这篇文章主要讲解了“SwiftUI的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SwiftUI的知识点有哪些”吧!一、背景苹果于2019年度WWDC全球开发者大会上,发布了基于
2023-06-04

React的知识点有哪些

这篇文章主要介绍了React的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇React的知识点有哪些文章都会有所收获,下面我们一起来看看吧。  组件的数据挂载方式,属性(props)props是正常
2023-06-03

ECharts的知识点有哪些

本文小编为大家详细介绍“ECharts的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“ECharts的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。简介ECharts(Enterpris
2023-06-27

yolov5的知识点有哪些

这篇文章主要讲解了“yolov5的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“yolov5的知识点有哪些”吧!一、yolo中txt文件的说明:二、yolo跑视频、图片文件的格式
2023-07-02

编程热搜

  • 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动态编译

目录