|
@@ -0,0 +1,72 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="en">
|
|
|
+<head>
|
|
|
+ <meta charset="UTF-8">
|
|
|
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
+ <title>Document</title>
|
|
|
+ <script src="./src/index.js"></script>
|
|
|
+ <style>
|
|
|
+ #outter{
|
|
|
+ width:200px;
|
|
|
+ background:red;
|
|
|
+ height:200px;
|
|
|
+ }
|
|
|
+ #inner{
|
|
|
+ width:100px;
|
|
|
+ background:green;
|
|
|
+ height:100px;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+ <div id="outter">
|
|
|
+ <div id="inner"></div>
|
|
|
+ </div>
|
|
|
+ <ul id="items">
|
|
|
+ <li>1111</li>
|
|
|
+ <li>2222</li>
|
|
|
+ <li>3333</li>
|
|
|
+ <li>4444</li>
|
|
|
+ <li>5555</li>
|
|
|
+ <div>666</div>
|
|
|
+ </ul>
|
|
|
+ <script>
|
|
|
+ //1、事件捕获冒泡-- 先触发outer
|
|
|
+ let outter = document.querySelector('#outter')
|
|
|
+ let inner = document.querySelector('#inner')
|
|
|
+ outter.addEventListener('click',function(){
|
|
|
+ console.log('捕获outter')
|
|
|
+ },true) // true 是否为捕获
|
|
|
+ inner.addEventListener('click',function(){
|
|
|
+ console.log('捕获inner')
|
|
|
+ },true) // true 是否为捕获
|
|
|
+ outter.addEventListener('click',function(){
|
|
|
+ console.log('冒泡outter')
|
|
|
+ }) // true 是否为捕获
|
|
|
+ inner.addEventListener('click',function(){
|
|
|
+ console.log('冒泡inner')
|
|
|
+ }) // true 是否为捕获
|
|
|
+
|
|
|
+ //2、事件委托函数封装
|
|
|
+ addEventListener('#items','click',function(e){
|
|
|
+ console.log(this.innerHTML)
|
|
|
+ },'li')
|
|
|
+
|
|
|
+ //3、手写事件总线 -- 一个事件绑定多个回调
|
|
|
+ eventBus.on('login',data=>{
|
|
|
+ console.log(data+'2222')
|
|
|
+ })
|
|
|
+ eventBus.on('login',data=>{
|
|
|
+ console.log(data+'3333')
|
|
|
+ })
|
|
|
+ //触发
|
|
|
+ setTimeout(()=>{
|
|
|
+ eventBus.emit('login','张三')
|
|
|
+ },2000)
|
|
|
+ //注销事件
|
|
|
+ eventBus.off('login')
|
|
|
+
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+</html>
|