位置: 编程技术 - 正文

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

  • 由第三方代付款开票给对方合规吗
  • 电子发票有使用期限吗
  • 小规模免税的税额怎么处理
  • 利润表中财务费用为负数是什么意思
  • 汇算清缴a107020表
  • 享受专项附加扣除该怎么申报
  • 管理会计与财务会计的联系与区别
  • 销售土地如何交增值税
  • 计提折旧需要减去预计净残值吗
  • 我国流转税的税种组成为
  • 物业电费加价如何举报
  • 用于出口的进项可以抵扣吗
  • 收到外国客户的祝福怎么回复
  • 股权转让个人交的印花税可以入账吗
  • 实收资本重复交的印花税可以申请退税吗?
  • 电信话费可以开公司发票吗
  • 材料报废的会计处理(一般纳税人)
  • 电梯什么情况下可以换个新的
  • 收到保险公司退款
  • 银行开户存入的钱怎么取
  • 有形动产经营租赁服务税率
  • 非公益性赠送该怎么进行会计处理?
  • 期末结转生产成本会计分录
  • 附加税费减免性质代码
  • 商场赠送购物券是真的吗
  • 如何结转销售收入
  • 生产车间闲置的固定资产
  • 经营出租的机器设备需要计提折旧吗
  • 计算机视觉会议2023年11月
  • 有限责任公司股东对公司债务承担
  • 反斜杠python
  • 过年回家的你
  • 退回材料的会计分录
  • 车辆保险会计怎么做分录
  • 免税农产品包括30万元吗
  • 行政事业单位个税代扣怎么记账
  • 价税合计公式分配
  • python怎么设置窗口界面
  • 业务出差餐费如何记账
  • SQLite教程(十一):临时文件
  • phpcms建站流程
  • 税控盘的服务费可以抵扣吗
  • 购物赠品的处理流程
  • 当月纳税申报期是什么意思
  • 原始凭证的基本内容有会计分录吗
  • sqlserver2005没有实例
  • 免征增值税的会计处理一般纳税人
  • 主营业务成本的摘要怎么写
  • 发票盖错章怎么擦掉
  • 零退税率可以做免税吗
  • 购买固定资产记账
  • 广告公司制作警车违法吗
  • 相关损坏维修成本是什么
  • 在建工程哪些费用可以资本化
  • 扣除土地价款
  • 出口货物不予免税的原因
  • 企业项目贷款所需资料
  • 小企业建账选哪种会计制度
  • 几个常见的收敛级数
  • sqlserver数据库事物日志已满
  • mysql sql语句性能调优
  • 32位操作系统不能玩cf
  • mac设置启动系统
  • linux编译安装php扩展命令
  • ubuntu with linux
  • linux 文字处理
  • 安装网络设备
  • nilaunch.exe - nilaunch是什么进程 有什么用
  • 多个版本python
  • ml命令
  • unity3d音效
  • Jqgrid之强大的表格插件应用
  • qq登录失败是怎么回事
  • jQueryUI Datepicker组件设置日期高亮
  • Unity3d C# Socket 下载文件 (同步向)
  • python能爬取app吗
  • 如何查询汽车发票
  • 河北省国家税务局长简介
  • 发票明细导入excel
  • 大管家多少集
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设