位置: 编程技术 - 正文

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

  • 什么情况才能开专票
  • 购买产品再出售怎么入账
  • 法人私户转公户怎么操作
  • 个税手续费返还政策文件
  • 返佣账务处理
  • 运输费计入原材料成本吗
  • 房地产公司将自建自用房产出售 土地增值税
  • 企业所得税税收优惠政策
  • 长期股权抵消分录
  • 事业单位取暖费什么时候发
  • 收到知识产权专用发票
  • 延期付款利息的税率是多少
  • 新政府会计制度与旧制度区别
  • 本年利润的借贷双方表示什么
  • 微信认证服务费可以开发票吗
  • 维修车间人员的工作总结
  • 什么叫二类费用
  • 新注册的公司用不用开公户
  • 金税盘百旺和航天
  • 税没申报不能领发票吗
  • 小规模纳税企业所得税优惠政策
  • 工程分配协议书范本
  • mac双系统怎么删除win系统
  • 商业意外险进项可以抵扣吗
  • 其他应付款付款后分录
  • 公司清理固定资产怎么开票
  • php操作json文件
  • php面包屑导航
  • antd怎么用
  • 会计差错更正处理
  • 新手会计怎么做分录
  • 商业连锁企业有哪些
  • 残疾人保障金工资总额包括年终奖吗
  • 爱上源码,重学Spring IoC深入
  • 购进小汽车自用为什么可以抵扣进项税
  • 给法院交的诉讼费没有发票怎么入账
  • 员工工资计提
  • python的用途
  • 存款对银行经营的意义
  • 所得税费用影响企业营业利润吗
  • 行政单位资产核算论文
  • 诉讼期间的利息法院支不支持
  • 原材料 半成品
  • 土地契税税率计算公式
  • 当月没开发票
  • 公司报税金额和实际发的不一致可以去告吗?
  • 给客户的回扣如何处理
  • 咨询服务费可以全额扣除吗
  • 安全生产责任险是强制险吗
  • 当期不得免征和抵扣税额
  • 空调安装开发票
  • 手工发票可以抵进项税吗
  • 去年的物业费今年收到了可以确认收入吗
  • 会计调账情况模板
  • 如何当好一个农民
  • sql server储存过程的创建与使用
  • macos sierra怎么样
  • bios如何进去
  • ubuntu开机黑屏无法进入登录界面
  • linux怎么删除文本文件
  • java.exe是指
  • win7旗舰版安装教程u盘
  • win8的应用商店
  • win7其他设备
  • windows7怎么关不了机怎么办
  • android4.4w
  • apk防止反编译
  • linux中shell脚本编写
  • firefox background-image垂直平铺问题的解决方法
  • 轻松实现的英文
  • JavaScript isPrototypeOf和hasOwnProperty使用区别
  • 上海买房退税政策2020
  • 缴纳个人所得税怎么计算
  • 纳税信用d级企业保留几年
  • 进口哪些情况要交税
  • 缴纳了车辆购置税能退吗
  • 证券经纪人收入构成
  • 工商局税务局合并了吗
  • 山西省税务
  • 2020年国税和地税怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设