位置: 编程技术 - 正文

理解JavaScript事件对象

编辑:rootadmin

推荐整理分享理解JavaScript事件对象,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在触发DOM上的某个事件时,会产生一个事件对象event。

DOM中的事件对象

兼容DOM的浏览器会将一个event对象传入到事件处理程序中。event对象包含与创建它的特定事件有关的属性和方法。除法的事件类型不一样,可用的属性方法就不一样。不过,所有的事件都会有下表列出的成员。

下面列出了 2 级 DOM 事件标准定义的属性:

bubbles: 返回布尔值,指示事件是否是起泡事件类型。 cancelable: 返回布尔值,指示事件是否可拥可取消的默认动作。 currentTarget: 返回其事件监听器触发该事件的元素。 eventPhase: 返回事件传播的当前阶段。 target: 返回触发此事件的元素(事件的目标节点)。 timeStamp: 返回事件生成的日期和时间。 type: 返回当前 Event 对象表示的事件的名称。

下面列出了 2 级 DOM 事件标准定义的方法。IE 的事件模型不支持这些方法:

initEvent(): 初始化新创建的 Event 对象的属性。 preventDefault(): 通知浏览器不要执行与事件关联的默认动作。 stopPropagation(): 不再派发事件。

this、target、currentTarget

在事件处理程序的内部,对象this始终等于currentTarget的值,而target则只包含事件的实际目标。如果直接将事件处理程序指定给了目标元素,则this、currentTarget和target包含相同的值。如:

由于click事件的目标是btn按钮,所以这三个值是相等的。如果事件处理程序在按钮的父节点(document.body)中,那么这些值则不相同。如:

在这里,this和currentTarget都是document.body,因为事件处理程序是注册到这个元素上的。但是target元素却等于按钮元素,因为它是click事件的真正目标。由于按钮并没有注册事件处理程序,结果click事件就冒泡到了document.body,在那里事件才能得到处理。

1、type

理解JavaScript事件对象

在需要通过一个函数处理多个事件时,可以使用type属性。如:

2、preventDefault()

要阻止特定事件的默认行为,可以使用该方法。如:

以上代码即屏蔽了网页上全部的a标签超链接功能。要注意的是,只有cancelable属性设置为true的事件,才可以使用preventDefault()来取消其默认行为。

3、stopPropagation()

立即停止事件在DOM层次中的传播,即取消进一步的事件捕获或冒泡。例如,直接添加到一个按钮的事件处理程序可以调用该方法,从而避免触发注册在document.body上面的事件处理程序。如:

又如:

eventPhase

该属性用来确定事件当前正位于事件流的哪个阶段。

如果是捕获阶段则等于1; 如果是目标对象阶段则等于2; 如果是冒泡阶段则等于3;

如:

又如:

流程大概是:

document.body 捕获阶段 --> btn 目标对象阶段 --> document.body 冒泡阶段

标签: 理解JavaScript事件对象

本文链接地址:https://www.jiuchutong.com/biancheng/382777.html 转载请保留说明!

上一篇:学习JavaScript事件流和事件处理程序

下一篇:JavaScript实现给定时间相加天数的方法(javascript怎么弄)

  • 变动成本法的计算公式有哪些
  • 建筑类企业是否允许留抵
  • 终止经营净利润计算公式
  • 个税申报导入上月数据
  • 上个月工资没有发
  • 餐饮通用机打发票可以报销吗
  • 行政单位会议纪要范文3篇
  • 交了定金签了合同
  • 会计凭证保管的含义及要求
  • 公司向税务局缴纳环保税
  • 金融工具包括哪些及其法律特征
  • 增值税可以不计提,直接缴纳吗
  • 电子版A4黑白发票可以抵税吗?
  • 单位的审计
  • 维修材料属于什么会计科目
  • 工程和技术研究和试验发展
  • 应付福利费科目
  • 生产车间的费用会计分录
  • 企业收到的罚款收入属于什么科目
  • 购买的房屋如何过户
  • 投入的生产线应该怎么做
  • 房地产预售阶段怎么开具发票
  • 水利工程水费怎样计算
  • 向政府购买土地使用权
  • win11dev预览版可以升级正式版吗
  • 基于php实现简单函数
  • vue中如何使用axios
  • php屏蔽错误
  • 年终奖分次发跟一起发有什么区别
  • WIN11系统CPU占用率高
  • php文件上传下载代码
  • 固定资产实收资本按照什么入账
  • layui树形下拉框
  • 差旅费用不用交税
  • 以下哪些企业需要填报
  • 开具培训类发票需要哪些条件?
  • 商业汇票的行为有哪些
  • 自然人专项扣除填报
  • phpcms默认密码
  • mac的配置
  • 无法收到的租金要交房产税吗
  • 商场收取租金如何入账
  • 出资人和法人承担责任
  • 累计折旧在资产负债表中填在哪里
  • 番茄开发票属于蔬菜吗?
  • mysql日期和时间分开存的 索引
  • 资产负债表调整事项
  • 跨年暂估成本如何冲销
  • 车船税手续费返还时间
  • 企业以现金形式发工资
  • 存量资金上缴财政怎么做账
  • 公众号注册验证退款
  • 社保调低,上半年多缴的怎么办
  • 临时设施摊销属于什么资产
  • 公司员工垫付款项
  • 上年度计提多了的奖金怎么办
  • 集团公司对子公司总经理的绩效考核
  • 啥叫合同
  • 企业以前年度亏损未弥补完
  • Windows PC用iCloud多设备共享数据图文教程
  • win8.1 下载
  • 微软的定时炸弹就是Windows XP
  • 笔记本win8.1怎么重装系统
  • centos7.0安装网卡驱动
  • win7自带防火墙关闭后自己打开啥原因
  • 怎么制作xp系统
  • ssh密钥根据什么生成
  • mysql删除key
  • linux创建目录函数
  • windows7的word
  • win8的系统
  • ssh用法及命令
  • window10使用ie8
  • opengl教程48讲
  • js中的三种弹出式消息提醒的命令是什么
  • jquery获取自定义标签的值
  • pythondjango框架 目录结构
  • jquery 3.5
  • Python通过行和列提取数据
  • 网上申报纳税小程序是啥
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设