js 事件的传播机制(实例讲解)

发布时间 - 2026-01-11 02:25:24    点击率:

事件的默认传播机制:

  捕获阶段:从外向里依次查找元素

  目标阶段:从当前事件源本身的操作

  冒泡阶段:从内到外依次触发相关的行为(我们最常用的就是冒泡阶段)

具体见下图:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    #outer{
      margin:20px auto;
      padding:20px;
      width:300px;
      height:300px;
      background:#008000;
    }
    #inner{
      padding:20px;
      width:200px;
      height:200px;
      background:blue;
    }
    #center{
      padding:20px;
      width:100px;
      height:100px;
      background:yellow;
    }
  </style>
</head>
<body>
  <div id='outer'>
    <div id='inner'>
      <div id='center'></div>
    </div>
  </div>
  <script>
    var outer = document.getElementById('outer'),inner = document.getElementById('inner'),center = document.getElementById('center');
    //使用DOM0级事件绑定给元素的某一个行为绑定的方法,都是在行为触发后的冒泡阶段把方法执行的
    document.body.onclick = function(){
      console.log('body')
    }
    outer.onclick = function(){
      console.log('outer')
    }
    inner.onclick = function(){
      console.log('inner')
    }
    center.onclick = function(){
      console.log('center')
    }

    //addEventListener 第一个参数是行为的类型 第二个参数是给当前的行为定义的方法 第三个参数是控制在哪个阶段发生:true 在捕获阶段发生 false在冒泡阶段发生
    document.body.addEventListener('click',function(){
      console.log('body')
    },false)
    outer.addEventListener('click',function(){
      console.log('outer')
    },true)
    inner.addEventListener('click',function(){
      console.log('inner')
    },false)

    //输出 outer inner body
  </script>
</body>
</html>

以上这篇js 事件的传播机制(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# js  # 事件传播机制  # 实例分析js事件循环机制  # JavaScript运行机制之事件循环(Event Loop)详解  # 彻底弄懂 JavaScript 执行机制  # 详解JS浏览器事件循环机制  # 给大家  # 绑定  # 是在  # 第一个  # 希望能  # 第二个  # 这篇  # 第三个  # 小编  # 最常用  # 大家多多  # 内到  # lang  # en  # lt  # html  # DOCTYPE  # gt  # head  # title 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何选择PHP开源工具快速搭建网站?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  如何安全更换建站之星模板并保留数据?  如何用虚拟主机快速搭建网站?详细步骤解析  图册素材网站设计制作软件,图册的导出方式有几种?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  高防服务器如何保障网站安全无虞?  教学论文网站制作软件有哪些,写论文用什么软件 ?  网站页面设计需要考虑到这些问题  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  JavaScript实现Fly Bird小游戏  如何快速生成专业多端适配建站电话?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  大连 网站制作,大连天途有线官网?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  如何正确下载安装西数主机建站助手?  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  微信推文制作网站有哪些,怎么做微信推文,急?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Laravel定时任务怎么设置_Laravel Crontab调度器配置  微信小程序 配置文件详细介绍  如何用西部建站助手快速创建专业网站?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Python高阶函数应用_函数作为参数说明【指导】  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel怎么使用artisan命令缓存配置和视图  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  如何在Tomcat中配置并部署网站项目?  JS中对数组元素进行增删改移的方法总结  原生JS获取元素集合的子元素宽度实例  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  中国移动官方网站首页入口 中国移动官网网页登录  Laravel怎么判断请求类型_Laravel Request isMethod用法  原生JS实现图片轮播切换效果  Laravel如何自定义分页视图?(Pagination示例)  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  Java垃圾回收器的方法和原理总结  音乐网站服务器如何优化API响应速度?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  新三国志曹操传主线渭水交兵攻略  大型企业网站制作流程,做网站需要注册公司吗?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  轻松掌握MySQL函数中的last_insert_id()  零服务器AI建站解决方案:快速部署与云端平台低成本实践