位置: 编程技术 - 正文

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

  • 食品配送专票税率是多少
  • 商品开票是什么意思
  • 酒店物业费收取标准2019
  • 公司职工餐费用怎样入账
  • 个税汇算清缴为啥要补交
  • 外币实收资本入账汇率
  • 发票预付款充值卡是否报销
  • 外汇结汇成人民币违法吗
  • 招待费和福利费每年标准
  • 半成品算原材料吗
  • 企业国有资产无偿划转办法
  • 企业管理咨询公司哪家好
  • 发现以前年度少计提税金
  • 农产品收购发票是普票还是专票
  • 农业水费管理使用办法
  • 上级单位给的奖金叫什么
  • 叉车在固定资产里叫什么
  • 影响所得税金额的因素有哪些
  • 园林绿化工程的分项工程有几个
  • 年薪制离职补偿金如何计算?
  • 农林牧渔业税务优惠
  • 年收入12万申报人数
  • 普票冲红需要收回全部联次吗
  • 固定资产清理属于资产类的备抵科目吗
  • 个人出租土地使用权增值税的减免
  • 企业账面库存过大应怎样处理好
  • 影响盈利能力的外部因素
  • 什么叫保理支付
  • 开具红字发票后又开了蓝字发票 怎么入账
  • windows10如何切屏
  • 进项票未认证怎么入账
  • 收取水电费如何开票
  • 使用Huagepage和PGO来提升PHP7的执行性能
  • php做
  • 现金流量表中收入是含税收入还是不含税
  • phpstudy的ftp
  • 单位公车是什么意思
  • php fgets函数的用法
  • 进项税额转出会计分录账务处理
  • 应收账款债权融资计划业务操作指引
  • 用人单位如何缴纳医疗保险
  • 公司清算的补偿方案是不是应该公布了
  • 零星分布的意思
  • php点击复制代码
  • 公司收到财政补贴款的会计分录
  • 报废机器设备会计分录
  • 自动驾驶感知决策控制
  • cifar10图像分类实验报告
  • tune a video:one-shot tuning of image diffusion models for text-to-video generation
  • 转让金融商品应交增值税计算公式
  • 报销单跨月怎么记账
  • 专利费用计入研发费用还是管理费用
  • ajax写接口
  • 营改增后建筑企业如何正确开具发票
  • 对公账户给别人走账
  • 已抵扣进项怎么转出
  • 领用包装物用于包装产品的会计分录
  • 经营租赁不动产租赁发票开具要求
  • 销售配件模式
  • 非营利医疗机构免征哪几种税
  • sqlserver导出数据库及表结构
  • sqlserver 通用分页存储过程
  • win8的文件夹选项在哪里
  • windows xp windows
  • windowsxp怎么开机
  • 两台mac怎么同步
  • windows 10预览版
  • win7哪些系统文件可以删除
  • win8.2系统
  • win10共享打印机win7连不上
  • html5+css3新特性
  • perl 文件
  • h1标签的使用完全正确的是
  • excel的最后一列
  • 分享一下相亲时碰见过哪些奇葩事
  • shell变量作用范围
  • jquery audio
  • python 遍历数组
  • python网络爬虫总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设