位置: 编程技术 - 正文

详解javascript事件冒泡

编辑:rootadmin

推荐整理分享详解javascript事件冒泡,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

事件是javascript中的核心内容之一,在对事件的应用中不可避免的要涉及到一个重要的概念,那就是事件冒泡,在介绍事件冒泡之前,先介绍一下另一个重要的概念事件流:一.什么是事件流:文档对象模型(DOM)是一个树形结构,可以形象的用下图表示。

详解javascript事件冒泡

如果一个html元素触发事件,那么这个事件就会在DOM树中的触发节点和根节点之间按照一定的顺序传播,所有经过的节点都会接收到被触发的事件,这个传播过程被称之为事件流。按照事件的传播顺序,可以将其分为两类,一种是事件冒泡,一种是事件捕获,这里就涉及到本章要介绍的主题了:1.事件冒泡:所谓的时间冒泡就是当一个元素触发一个事件,事件会像是水泡一样,从触发元素向它的所有父节点传播,一直到根节点都会接收到此事件,如果父元素中注册了相应的事件处理函数,那么尽管事件在子节点触发的,在父元素上注册的事件处理函数同样会被触发。例如在上面图示中,如果触发a元素的onclick事件,那么它的父元素p、document和widow都会接收到此事件,并且如果在相应的父元素注册有时间处理函数,那么此事件处理函数将会执行,看一段代码实例:

以上代码的目的是,当点击相应的单元格的时候就会弹出对应单元格中的内容。但是在上面的实现中并不是为每一个单元格注册onclick事件处理函数,而是将onclick事件处理函数注册于单元格的父元素table上,当点击单元格的时候会触发onclick事件,事件还会从从事件对象向上传播,而table元素恰好有注册的onclick事件处理函数,这个时候就会执行此处理函数,当然这里会设置到传递事件对象参数的问题。所有的浏览器都支持事件冒泡。二.事件捕获:事件捕获和事件冒泡恰好相反,当点击一个元素的时候,事件传播的方向是从根元素到触发元素,IE浏览器并不支持,为了跨浏览器支持,所以默认情况下一般都是使用冒泡型事件处理模型。2.javascript阻止事件冒泡代码事件冒泡在某些场景非常的有用,但是有时候也是必须要阻止,下面是一段能够兼容所有主流浏览器的阻止事件冒泡的实例代码。代码实例:

以上代码可以阻止事件冒泡,下面对代码做一下简单注释:二、代码注释:

1.function stopBubble(e) {},此函数用来阻止事件冒泡,参数是个事件对象。 2. if(e&&e.stopPropagation){e.stopPropagation();},判断是否支持stopPropagation,如果支持就使用e.stopPropagation()。stopPropagation()函数IE和IE以下浏览器不支持。 3.window.event.cancelBubble=true,当前IE浏览器使用这个可以阻止事件冒泡。

标签: 详解javascript事件冒泡

本文链接地址:https://www.jiuchutong.com/biancheng/383764.html 转载请保留说明!

上一篇:js父页面中使用子页面的方法(js获取父窗口)

下一篇:实例讲解javascript注册事件处理函数(结婚日课实例讲解)

  • 发票上的不含税单价怎么算的
  • 个人去税务局开专票需要提供什么
  • 非现金资产债务怎么算
  • 资产负债表上的资产是原值还是净值
  • 现金折扣在买方还是卖方
  • 税务退税会计分录
  • 股东补亏资金
  • 公司取出的备用金怎么打税
  • 应交税费账户进项税额为借方是什么意思?
  • 计入固定资产的土地
  • 营业外收入是否报增值税
  • 个人缴纳物业费怎么开发票
  • 个税手续费需要开具发票吗
  • 个人房源出租
  • 网上报税申报成功之后该怎么操作
  • 可转债转换为股权投资的企业所得税处理
  • 公司销售商品怎么做分录
  • 先进行税务登记还是先注册开户银行账号
  • 按年缴纳年金的企业缴费部分,应按照全年一次性奖金
  • 取得进账发票没发票
  • 提供加工服务的企业
  • 按实际成本结转6日和7日的材料采购成本
  • php解析html文件
  • 基于中国国情的中国式现代化具有哪些特色
  • 中拍网拍卖
  • 违约金的增值税税率
  • 技术维护费计入
  • codelite怎么进行编译
  • 小微企业城建税及附加减免优惠
  • 加工劳务费会计分录
  • linux+php
  • pytorch中的数据类型
  • 购买方红字信息表已开销售方系统查不到
  • 11个点的是什么星座
  • mysql in()
  • 如何查询以前申请的新西兰签证记录
  • 错开发票所需要提供的资料和时效要求是?
  • sqlserver解密工具
  • sqlserver2000分页
  • 无票收入会计分录实例
  • 企业长期零申报
  • 社保可以直接计入费用吗
  • 出口报关金额怎么算
  • 公司法认缴资本金新规
  • 每月材料进出库明细表
  • 月销售额不超过15万的免征增值税
  • 一般餐饮业的固废是什么
  • 所得税费用科目的期末余额应直接转入
  • 进项已抵扣,退货发票怎么处理
  • 开外管证再省外能办理吗
  • 收到某企业一笔发票
  • 所得税汇算清缴退税会计分录怎么做
  • 个体注销名下的车辆需要过户吗
  • 研发费用扣除75%
  • 招标付款条件及比例
  • 会务费入哪个科目
  • mysql的性能调优
  • mysql 创建root用户和普通用户及修改删除功能
  • linux sshd是什么
  • 苹果电脑截图快捷键
  • mac 应用
  • fedora使用
  • mac在哪看
  • 电脑自带win8是装win7还是win10
  • 在对linux系统中dir
  • linux html编辑器
  • linux操作系统网课
  • cocos2d-js-min.js
  • linux curl用法
  • 搭建gitbook
  • 批量数据验证
  • JavaScript中的对象一般分为
  • jquery 图片插件
  • 有道词典下载安装
  • js中substring和substr有区别吗
  • 挂车买保险是怎么买的
  • 佛山顺德怎么坐地铁到广州
  • 常州国家税务局待遇
  • 河南个人社保查询登录入口官网
  • 厨房申购单怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设