位置: 编程技术 - 正文

理解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怎么弄)

  • 收取违约金是否交税
  • 小规模纳税人单张发票最大金额
  • 股份公司解散是什么?
  • 建筑服务预征缴纳税款包括附加税吗
  • 企业可以申请专项债券吗
  • 汽车购买者
  • 个税个人减免
  • 有限合伙企业转让投资股权
  • 出口销售收入怎么算
  • 企业收到委托开发软件的货款如何记账?
  • 甲供工程选择适用简易计税方法后,36个月
  • 应交增值税明细科目如何结转
  • 小规模纳税人实行简易征收办法
  • 个体户进项发票多开出发票少怎么办
  • 代付租金委托书怎么写
  • 固定资产减值准备可以税前扣除吗
  • 工程预收款账务处理
  • 预付的各种押金
  • 空调计入什么会计科目二级
  • 财政专项补助资金企业所得税申报
  • 包装物押金为什么含税
  • 开发票货款未公对公转怎么做账
  • 承兑找零怎么做凭证
  • 公司和个人分别交什么税
  • Remoterm.exe - Remoterm是什么进程 有什么用
  • 公司的劳务费支出怎么做账
  • 保洁费入账
  • 处置工程物资取得净收益
  • 商业汇票计入什么科目技能高考
  • 出口退税的期限是多长
  • php gtk
  • 来料加工企业转型是转成两个企业吗
  • web应用程序的主要组成部分
  • 败诉方承担诉讼费缴直接付给法院还是胜诉方
  • Diffusion models代码实战:从零搭建自己的扩散模型
  • php授权ip访问
  • 取得农产品免税发票如何账务处理
  • 纳税人备案期限
  • 员工差旅费报销会计分录
  • 存货的计税基础公式
  • 农民工专户个税怎么申报
  • 建筑公司算不算企业
  • 民办非企业单位工会经费
  • 顺流交易为什么也要减
  • 企业委托企业
  • 将自产的产品用于非应税项目
  • 进料加工转内销会计处理
  • 出差期间招待费用怎样报销
  • 开出商业承兑汇票怎么做分录
  • 报销核销
  • 增资后持股比例计算
  • 劳务外包存在的法律风险
  • 什么是长期的
  • 季报能弥补以前年度亏损吗
  • 支付劳务费是劳务所在地吗
  • 开票软件服务费计入什么会计科目
  • 注册资本越多越好吗
  • 购买土地会计分录及摊销分录
  • 在linux操作系统中
  • 怎么简单快速的拼成魔方六面
  • 蓝屏 win7
  • ubuntu 改名
  • 意大利的福利政策
  • centos权限不够怎么办
  • macbookpro鼠标触控板
  • linux bas
  • win7蓝屏怎么办
  • Manjaro Linux 0.8.13发布下载 可将系统装入SD卡
  • glrotatef函数
  • using Net::SSH2 shell 的二个方法
  • 如何旋转图片30度
  • linux命令教程
  • angular.js
  • shell获取脚本进程id号
  • unity ugui教程
  • 如何开发一个新的向量库
  • jQuery插件扩展extend的简单实现原理
  • python类属性和类方法
  • 上海市税务官方网站网址
  • 旅游景区可免交土地使用税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设