位置: 编程技术 - 正文

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

  • 合伙企业税务筹划点
  • 开具增值税发票未报送是什么意思?
  • 评估增值对净利有影响吗
  • 活动策划费属于业务宣传费吗
  • 物业公司一般纳税人增值税税率
  • 外币实收资本入账汇率
  • 房地产开发的会计处理
  • 组装机配件
  • 非货币投资如何缴纳企业所得税
  • 服务业税收包括什么
  • 发生非正常损失的购进货物不准予抵扣的增值税
  • 研发折旧会计分录
  • 出口转内销税费
  • 抵扣勾选和退税勾选选错了怎么办
  • 政府补助怎么开票入账
  • 专票什么公司才能开
  • 公司注销后款未收完怎么办
  • 递延所得税年初数和期末数
  • 多用途预付卡发卡方账务处理
  • 租入固定资产装修
  • 反映留存收益的账户
  • 出让和转让的有何区别
  • 期末调汇会计分录
  • 航天维护费全额抵扣
  • c盘空间变小的原因
  • 附加税会计分录2022
  • 营改增后建筑业怎么开票
  • linux开启远程ssh
  • linux不能联网怎么解决
  • 企业常见的涉税风险
  • 支付报刊杂志费
  • 资本化的后续支出包括哪些项目
  • php实现数据批量导入
  • php 强类型
  • 企业固定资产计提折旧是以什么为前提
  • php中session什么意思
  • 微信小程序开发完整项目
  • 餐饮类的增值税
  • php xdebug配置
  • php 提交表单
  • markdown语法是什么意思
  • 如何取消axios请求
  • 深度学习如何训练出好的模型
  • 企业资产损失税前扣除管理办法最新
  • 场外期权怎么交税
  • 增值税发票开票系统数据与实际报税数不一致的原因?
  • 补收入账是什么意思
  • 图书的税率有免税的吗
  • 端午节过节费发放通知
  • mysql 索引类型以及使用场景
  • 网上免费学电脑
  • dede标签的使用
  • 研发费用成本化和费用化
  • 工程结算科目
  • 未收到货款但发货怎么办
  • linux 自启
  • 企业筹建期间可以上市吗
  • 公司开办费的会计分录
  • 金税盘全额抵扣申报表怎么填
  • 专利技术转让损失会计分录
  • 计提和发放工资的会计科目
  • 递延所得税资产和所得税费用的关系
  • 商标 入账
  • 机关和事业单位党的支部委员会每届任期
  • 小微企业税控盘维护费每年都要交吗
  • mac安装surge
  • mysql怎么把列变成行
  • mac蓝牙连接iphone有什么用
  • win7远程设置在哪
  • ssh用法及命令
  • linuxone
  • wow血条插件
  • cocos2d怎么用
  • linux shell脚本运行程序
  • vue.js有什么用
  • Eclipse ctrl+shift+r
  • javascript获取值
  • jQuery ztree实现动态树形多选菜单
  • 税控盘托管给百旺的弊端
  • 广东省电子税务局app下载官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设