2014年辛星解读Javascript之DOM之冒泡和捕获[通俗易懂]

2014年辛星解读Javascript之DOM之冒泡和捕获

大家好,又见面了,我是全栈君。

     上篇博客提到了Javascript事件绑定函数的三个參数。第一个是一个event。第二个是一个function。第三个是一个布尔变量。它用于指定事件传递的顺序,分为冒泡和捕获两种方式,接下来我们将揭开它的神奇面纱,彻底的解读它。

      首先看例如以下代码:

<html>
<body>
	<div id = "demo"><p id = "tag">辛星</p></demo>
	<script type="text/javascript">
		document.getElementById("demo").addEventListener("click",mydemo);
		document.getElementById("tag").addEventListener("click",myshow);
		function myshow(){ alert("标签p被触发");}
		function mydemo(){ alert("标签div被触发");}
	</script>
</body>
</html>

     那么对于上述HTML文件,假设我们点击了“辛星”这个字样,那么先出现哪个弹窗呢?假设读者把上述代码拷贝下来,后缀命名为一个HTML文件,那么会发现它先弹窗“标签p被触发”。等我们对它点了确定之后,才是“标签div被触发”,那么,这是什么机制呢?

    这就是由于第三个參数在起作用,第三个參数默认是false,即採用冒泡的方式,什么是冒泡呢?假设大家学习过算法。会发现有个冒泡排序,非常easy,就是气泡会从下向上浮动。这样的方式表示我们先响应小的标签。再响应大的标签,比方这里p标签就是div标签的子元素,因此。这里先响应p标签绑定的事件。然后再响应div标签绑定的点击事件。

     假设把第三个參数改成true。则效果正好相反,先响应父标签的事件。再响应子标签的事件。假设就讲这些东西,显得这篇博文是凑数的,那么我们就再介绍一些东西。这里说一下removeEventListener这个函数。它用于解除绑定,即把我们的事件和事件的回调函数解除绑定。

     只是这个addEventListener和removeEventListener对于浏览器的兼容性上并非那么好,还是IE系列在作怪,IE8之下的版本号不支持,可是IE8支持使用element.attachEvent(event。function)来绑定,用element.detachEvent(event,function)来解除绑定。

     对于浏览器的兼容性。确实一个比較让人头疼的问题。特别是在中国这样的IE使用量还非常大的国家,哎,仅仅能慢慢承受折磨了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115965.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Visio2013激活_2013 visio 32位

    Visio2013激活_2013 visio 32位转载的博客,记录下来,便于后面查找。from: http://blog.csdn.net/keenweiwei/article/details/42780805/环境是win7,64bit装了visio2013,可以却不能用它来画图,在网上找了一些激活成功教程工具,大都不能解决问题。网上不靠谱的广告型文章太多了,比较头痛。所幸,终于找到正确的激活成功教程工具KMSpico_set…

    2022年10月5日
    0
  • 如何使用IntelliJ IDEA 配置Maven

    如何使用IntelliJ IDEA 配置MavenIDEA全称IntelliJIDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的Java开发工具之一,IDEA是JetBrains公司的产品,现在有逐步取代老牌Java开发工具Eclipse的趋势.那本人也是从Eclipse转到IDEA.那刚转换过来时,确实很不适应,不过好在坚持使用了几天后,确实感觉IntelliJIDEA比Eclipse更加智能.  

    2022年9月27日
    0
  • 百度识图解析_蒙眼识字是什么原理

    百度识图解析_蒙眼识字是什么原理百度识图原理分析推测其发展方向    2010年12月13日,百度推出相似图片搜索功能—百度识图(shitu.baidu.com),常规的图片搜索,是通过输入关键词的形式搜索到互联网上相关的图片资源,而百度识图则能实现用户通过上传图片或输入图片的url地址,从而搜索到互联网上与这张图片相似的其他图片资源,同时也能找到这张图片相关的信息。     百度的相似图片搜索识图

    2022年9月11日
    0
  • bootstrap模态框关闭后清除模态框的数据

    bootstrap模态框关闭后清除模态框的数据

    2021年11月8日
    36
  • 修改tomcat端口号的文件_tomcat更改端口号在哪个目录

    修改tomcat端口号的文件_tomcat更改端口号在哪个目录修改Tomcat端口号步骤:1.找到Tomcat目录下的conf文件夹2.进入conf文件夹里面找到server.xml文件3.打开server.xml文件4.在server.xml文件里面找到下列信息maxThreads=”150″minSpareThreads=”25″maxSpareThreads=”75″

    2022年10月30日
    0
  • 数仓建模与分析建模_数据仓库建模与数据挖掘建模

    数仓建模与分析建模_数据仓库建模与数据挖掘建模1.数仓概述数据仓库:数据仓库是一个面向主题的、集成的、非易失的、随时间变化的数据集合。重要用于组织积累的历史数据,并且使用分析方法(OLAP、数据分析)进行分析整理,进而辅助决策,为管理者、企业系统提供数据支持,构建商业智能。面向主题:为数据分析提供服务,根据主题将原始数据集合在一起。集成的:原始数据来源于不同的数据源,要整合成最终数据,需要经过ETL(抽取、清洗、转换)的过程。非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询、分析。时变性:数仓会定期接收、集成新的

    2022年9月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号