位置: 编程技术 - 正文

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

  • 个人所得税退的多好还是少好
  • 向农业生产者收购原木进项税怎么算
  • etc预付发票可以抵税吗
  • 合并财务报表内部交易对净利润影响
  • 长期股权投资的账务处理
  • 不是单位职工个税怎么算
  • 汇算清缴预提费用调整政策
  • 生产设备购买交付会计分录
  • 药店药品成本怎么核算
  • 私车公用油费计入什么科目
  • 维修费增值税
  • 代扣代缴个人所得税手续费是否缴纳增值税
  • 取得稳岗补贴后怎么办
  • 调整薪酬结构
  • 跨区域预缴企业所得税
  • 不能抵扣的进项发票怎么做分录
  • 收到别公司利息怎么记账
  • 基本户注销帐户余额怎么分配?
  • 建筑企业按什么确认收入
  • 苹果手机14pro max
  • iphone6s怎么开启开发者选项
  • 设置按住键盘重启怎么弄
  • 收入3000以下占比
  • 厂区地面硬化的意义
  • 给员工支付的房租怎么算
  • 主合同变更对保险的影响
  • 建筑企业总产值是什么
  • 股权转让个税怎么缴纳
  • 当月发生的费用下月支付
  • 没有取得发票的支出可以做成本吗
  • PHP:Memcached::casByKey()的用法_Memcached类
  • linux动态扩容
  • win7纯净版本
  • php 操作mysql
  • 处置动产减按2%税率是什么意思
  • 赔偿金和违约金有什么区别
  • 销项税和进项税抵扣的会计分录
  • 开办分公司
  • 公司登记注册费每年都要交吗
  • 个体工商户年报逾期怎么办
  • js怎么制作
  • jquery设置不可用
  • iotop命令 监视磁盘I/O状态
  • ctrl ate del
  • 织梦怎么用
  • 以土地使用权投资入股的会计处理
  • 费用发票可以抵税吗
  • sql server触发器实例
  • 建筑公司算不算企业
  • 没有增值税专用发票
  • 企业将购进的原材料分录
  • 交通运输业营改增
  • 企业发生的各项罚款收入应计入
  • 长期股权投资全部亏损汇算清缴怎么填
  • 未认证的进项税额转出会计分录
  • 为什么预付账款可以通过应付账款核算
  • 银行存款付款是借方还是贷方
  • 什么是非关联方账户
  • 外购商品为什么是库存商品
  • 预付账款无法取得发票如何处理
  • 固定资产卡片录入日期怎么改
  • winxp密码忘了
  • centos下载命令
  • mentohust配置
  • CentOS 5.4+OpenVZ+Vtonf打造VPS服务器的方法
  • windows下键盘不能用
  • 如何配置centos7下的apache服务
  • 如何在linux系统中卸载一个已装载的文件系统
  • qq仿ios
  • cocos2dx4.0教程
  • 详解Javascript ES6中的箭头函数(Arrow Functions)
  • json对象如何取值
  • nodejs基础教程
  • unity3d基础操作
  • iframe隐藏页面内容
  • android中文文档
  • 计算字符串的长度使用哪个函数?
  • angular ngshow
  • 公司开票明细如何查询
  • 辽宁取暖补贴发放标准2020
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设