位置: 编程技术 - 正文

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

  • 税后经营净利率和营业净利率的区别
  • 投资性房地产公允价值模式出售
  • 营改增后企业所得税分成比例
  • 房屋租赁账务处理程序
  • 怎么知道购货方电话号码
  • 增值税税金不足1元未缴纳账务处理
  • 现金支票怎么支付的
  • 不动产在建工程是什么意思
  • 公司投资的股权财产怎么认定
  • 参与工会职工应享受哪些福利待遇
  • 中国公司外派美国工作
  • 进口货物要交消费税吗
  • 注册资本需要
  • 贷款利息收入要减去支付利息支出吗
  • 企业所得税税前扣除异常
  • 企业支付劳务费到底需要发票吗
  • 支付法院执行款的账务处理
  • 消耗性生物资产的账务处理
  • 投资性房地产公允价值模式账务处理
  • 计提应收利息怎么做分录
  • 城建税是增值税的附加税吗
  • 什么是毛利润和纯利润
  • 如何编制处置固定资产
  • 附加税减免要计税吗
  • ping命令测试结果
  • 如何更改自己
  • php字符串函数大全
  • 小米路由器599元
  • 结转完工产品成本计算公式
  • framework启动
  • 在计算应纳税所得额时,不允许作为税金项目
  • 金税三期系统的对比有哪几个
  • 租赁公司的
  • 微信小程序设计规范(官方)文档
  • vuemvvm模式
  • 纳税人异地预缴所得税
  • 在发票上盖了公章有用吗
  • 管理费用科目包括
  • pos机刷卡未成功却扣了钱啥时候就退回来了
  • 无形资产未确认融资费用例题
  • 待认证进项税额月末怎么处理
  • 电子设备折旧残值率
  • 税收优惠退回的税金怎么入账
  • 同花顺为什么有钱没法买
  • 记账凭证修改有几种方法
  • 专票先不认证如何申报增值税
  • 进项发票可以退税吗
  • 本年利润是负数的会计分录
  • 库存商品可以用多栏式吗
  • 企业预算如何编制
  • 统计会计主要做什么
  • 什么是逐步结转分步法
  • mysql found_row()使用详解
  • 韩国电脑用什么系统
  • winsock2
  • win8无法完成更新正在撤销更改怎么办
  • ubuntu文本编辑器怎么打开
  • Ubuntu安装VMware tools
  • 打开安全启动
  • java.exe是指
  • windows8.1正版
  • win10更新中重启会怎么样
  • win10专业版装不上m1136驱动
  • windows8.1的图片
  • win10语音控制电脑
  • perl ne
  • android 布局
  • unity learn premium
  • listview设置item宽度
  • shell 计算表达式
  • 批处理技术有哪些
  • 有隐藏项怎么复制
  • python开发软件教程
  • python备份列表l
  • bootstrap4 教程
  • jQuery提示插件qTip2用法分析(支持ajax及多种样式)
  • 微博评论系统
  • 云南省新农合网上缴费app
  • 河北税务云办税厅官方
  • 《税收实务》
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设