什么是事件冒泡?

事件冒泡:从子元素向父元素触发 —>当某个事件触发时,同样的事件会向父元素触发。
但并不是所有事件都会产生冒泡问题 onfocus、 onblur 、onload不会产生冒泡问题
以上文字看起来太官方,不容易理解,下面给大家来点通俗易懂的
举例来说明:
例如:
现在窗口上有一个按钮,给按钮绑定一个点击事件,点击安钮让其显示一个提示框。
给界面也绑定一个点击事件,点击其按钮外的任何位置让其提示框消失。
那么问题来了,按钮也属于界面里,点击安钮的话岂不是就冲突了。那么怎么来解决这个问题呢?

这类情况就被称为事件冒泡!

阻止事件冒泡

阻止事件冒泡要在哪阻止呢?
阻止事件冒泡就好比,一个人身体上的某一部位发生病变且有可能会蔓延到其他部位,我们就要在这个部位进行手术来阻止它的蔓延。

html代码:

 <input type="button" value="按钮" id="obut" onclick="but()"><div id="div1" style="display: none;width: 300px; height: 100px; border: 1px solid black;">提示框</div>

javascript代码:

 let obut = document.getElementById("obut");let div1 = document.getElementById("div1");function but(evt){let e = evt || event; //为了兼容大多数浏览器 这里采用事件的兼容写法div1.style.display = "block"; //点击安钮让其提示框显示e.stopPropagation?e.stopPropagation():e.cancelBubble=true;//阻止事件冒泡}document.onclick = function(){//给document绑定点击事假div1.style.display = "none";//点击界面的任何一个位置让提示框隐藏}

事件冒泡详解及阻止事件冒泡相关推荐

  1. c语言鼠标事件的详解,JS鼠标事件(非常详细)

    在 JavaScript 中,鼠标事件是 Web 开发中最常用的事件类型,鼠标事件类型详细说明如下表所示: 鼠标事件类型 事件类型 说明 click 单击鼠标左键时发生,如果右键也按下则不会发生.当用 ...

  2. oracle 冒泡,详解易语言的冒泡算法

    我们做一些游戏脚本软件时候,经常要用到这个算法,比如求解离自己身边最近的怪物优先攻击,就要用到这个算法,冒泡算法可以快速的把一组数据按照从大到小,或者从小到大的顺序进行快速排序. 冒泡算法的核心就是, ...

  3. CSharp(C#)语言_委托和事件区别详解

    委托和事件区别详解 委托和事件的概念 委托 事件 委托和事件的作用 委托 事件 委托和事件的区别 委托和事件的详细解答请看C#系列文章 委托和事件代码实践 委托 事件 总结 委托和事件的概念 委托   ...

  4. JavaScript(js)事件冒泡、事件捕获、事件委托详解

    JavaScript(js)事件冒泡.事件捕获.事件委托详解 1.什么是事件 JavaScript和HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口发生的一些特定的交互瞬间.可以使用监听 ...

  5. JavaScript事件详解-jQuery的事件实现(三)

    正文 本文所涉及到的jQuery版本是3.1.1,可以在压缩包中找到event模块.该篇算是阅读笔记,jQuery代码太长.... Dean Edward的addEvent.js 相对于zepto的e ...

  6. Android事件流程详解

    Android事件流程详解 网络上有不少博客讲述了android的事件分发机制和处理流程机制,但是看过千遍,总还是觉得有些迷迷糊糊,因此特地抽出一天事件来亲测下,向像我一样的广大入门程序员详细讲述an ...

  7. 委托与事件代码详解与(Object sender,EventArgs e)详解

    委托与事件代码详解 using System; using System.Collections.Generic; using System.Text; namespace @Delegate //自 ...

  8. mysql binlog event_MySQL binlog中的事件类型详解

    MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型. ...

  9. binlog事件类型详解

    MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型. ...

最新文章

  1. 将ADS1.2的工程迁移到KEIL上-基于2440
  2. 【组队学习】【24期】Docker教程
  3. jackson 反序列化string_Java 中使用Jackson反序列化
  4. Median of Two Sorted Arrays
  5. Linux上端口开放常用命令
  6. JAVA笔记(运算符)
  7. Linux下面makefile编写
  8. webrtc 静音检测(二)
  9. 全面提升AI语言理解能力,达摩院自研语言模型体系登顶6大权威榜单
  10. 第9章、图像按钮ImageButton(从零开始学Android)
  11. 玩手游神助攻:盘点那些具有游戏宏按键,可自定义按键一键多用的模拟器
  12. STM32 WAVWM8978简介
  13. springboot配置mysql数据源_SpringBoot+mysql配置两个数据源
  14. B站粉丝计数器!基于microByte
  15. uhs3内存卡有哪些_高速内存卡是什么 3款热门高速内存卡推荐
  16. 什么是适合中小企业的ERP
  17. Oracle数据库建表 Oracle数据库的统一命名与编码规范
  18. 等价无穷小替换及其习题 笔记
  19. 操作系统概述及各类操作系统特点
  20. 1小时销量突破50万台!小金刚Redmi Note 10系列力创首销新纪录

热门文章

  1. 前端自动化测试(webdriverio+mocha+chai)
  2. detailview的控件基础
  3. uint_t(uint8_t)和size_t
  4. 【JavaSE】JavaSE之控制逻辑
  5. Splay(splay模板)
  6. 牛客网SQL--某东篇
  7. 镜像miracast投屏软件_什么是Miracast投屏,Miracast是怎么投屏的?
  8. hello,intel TBB
  9. icp光谱仪的工作原理_ICP基本原理解析.ppt
  10. mysqladmin的用法简介