位置: 编程技术 - 正文

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

  • 土地出让金印花税计税依据
  • 印花税资本金项目如何缴纳
  • 行政单位基建管理办法
  • 出口关税的计算基数
  • 过路费报销属于什么费用科目
  • 网上增值税申报表怎么填
  • 补交以前年度的所得税
  • 国家研发补贴政策
  • 核定征收的固定资产包括
  • 合同上怎么注明开具6%的含税普通发票
  • 吸收合并的税务处理增值税风险
  • 小规模纳税人出租房屋增值税税率是多少
  • 增值税税控盘抵减
  • 土地使用税与房产税的区别
  • 合作社开具的免税普票计算抵扣
  • 外方获得的利润怎么算
  • 费用化和资本化对利润的影响
  • 业务费用包干制
  • 设计服务交文化建设税吗
  • 存出资本保证金属于什么科目
  • 工程筹建期间发票怎么开
  • 成本核算的一般步骤
  • 华为mate50 pro
  • 产品外包装的作用
  • php基础入门教程
  • linux输出结果
  • 委托软件开发费用怎么入账
  • 预收房租需要缴纳个税么
  • PHP:pg_field_prtlen()的用法_PostgreSQL函数
  • 债券投资账务处理例题
  • 什么是实际成本计价
  • 取得投资是什么意思
  • 前端解决跨域问题的代理
  • 如何成功安装暗区突围
  • 补交上年所得税怎么调表
  • 新购固定资产怎么填写申报表
  • linux lab安装
  • SQLite教程(三):数据表和视图简介
  • mongodb的坑
  • 年末需暂估已发生的费用吗
  • 货币市场基金的特点
  • 个人所得税汇算清缴
  • 非公司员工可以报销差旅费吗
  • 利息收入管理办法
  • 会计中应收账款属于什么科目
  • 政府补助的房子叫什么
  • 未分配利润为负代表什么
  • 现金折扣与商业折扣的计算
  • 收到股本金 怎么记账
  • 年平均资金占用额公式
  • 本年利润是负数的会计分录
  • 税控盘会计分录怎么做
  • sqlserver 教程
  • mac上的home键在哪
  • win102020年更新
  • linux系统 虚拟机
  • linux虚拟局域网搭建
  • 光盘安装系统怎么操作
  • win10windows更新
  • win8开始在哪里
  • icqlite.exe进程的详细介绍 icqlite进程的查询 作用是什么
  • win8浏览器打不开网页但能上网
  • mysql删除key
  • linux清除ssh登录记录
  • linux使用mv命令,结果文件不见了
  • 安卓sdk目录下用来存放各种版本sdk的目录是
  • 批处理怎么用
  • 深入浅出Struts
  • 解读JavaScript中 For, While与递归的用法
  • 命令如下
  • python程序员必读书籍
  • unity3d手机怎么打开
  • SQLite3中文编码 Python的实现
  • python搜索功能
  • 用js做表单验证
  • 税控盘抄报反写工作难度
  • 怎么查询中标公司
  • 关于加强税务稽查工作的思考
  • 商标注册图形查询
  • 国家税务总局里面怎么改办税人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设