zoukankan      html  css  js  c++  java
  • js事件冒泡、事件捕获

    事件冒泡

            var box = document.querySelector('.box');
    	var content = document.querySelector('.content');
    	document.addEventListener('click', function(e) {
    	  console.log('document');
    	}, false);
    	document.body.addEventListener('click', function(e) {
    	  console.log('body');
    	}, false);
    	box.addEventListener('click', function(e) {
    	  console.log('box');
    	}, false);
    	content.addEventListener('click', function(e) {
    	  console.log('content');
    	}, false);
    	    
    

    当我们点击.content时,事件的执行顺序是content - box - body - document。所以事件冒泡的走向是由子节点向父节点去触发同名事件

    ![](https://img2018.cnblogs.com/blog/1244681/201901/1244681-20190115195901517-1837700391.png)

    事件捕获

            var box = document.querySelector('.box');
    	var content = document.querySelector('.content');
    	document.addEventListener('click', function(e) {
    	  console.log('document');
    	}, true);
    	document.body.addEventListener('click', function(e) {
    	  console.log('body');
    	}, true);
    	box.addEventListener('click', function(e) {
    	  console.log('box');
    	}, true);
    	content.addEventListener('click', function(e) {
    	  console.log('content');
    	}, true);
    	    
    

    当我们点击.content时,事件的执行顺序是document - body - box - content。所以事件冒泡的走向是由父节点向子节点去触发同名事件

    ![](https://img2018.cnblogs.com/blog/1244681/201901/1244681-20190115200255130-1428367299.png)

    总结:

    addEventListener('', function(e) {}, false);
    

    第三个参数可控制事件是冒泡还是捕获,js逻辑写法的先后顺序与事件触发的顺序无关

  • 相关阅读:
    传统文化相关词组(陆续补充)
    面试题 17.09. 第 k 个数
    1544. 整理字符串
    SQL Server 2008 R2 数据库之间的数据同步热备份
    SQLServer数据库同步准实时解决方案
    SQL Server 用链接服务器 同步MySQL
    SqlServer数据库同步方案详解(包括跨网段)
    键值修饰符v-on:keyup.enter
    事件修饰符
    内连处理器里的方法2.html
  • 原文地址:https://www.cnblogs.com/frogblog/p/10274035.html
Copyright © 2011-2022 走看看