13_事件冒泡.html 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. #div1 {
  10. width: 300px;
  11. height: 300px;
  12. background: pink;
  13. }
  14. #div2 {
  15. width: 200px;
  16. height: 200px;
  17. background: red;
  18. }
  19. #div3 {
  20. width: 100px;
  21. height: 100px;
  22. background: green;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="div1">
  28. <div id="div2">
  29. <div id="div3"></div>
  30. </div>
  31. </div>
  32. <script>
  33. var div1 = document.getElementById('div1')
  34. var div2 = document.getElementById('div2')
  35. var div3 = document.getElementById('div3')
  36. // div1.onclick = function(){
  37. // console.log('div1')
  38. // }
  39. // div2.onclick = function(e){
  40. // console.log('div2')
  41. // //阻止事件默认行为
  42. // // e.preventDefault() //阻止不了
  43. // //阻止事件冒泡
  44. // e.stopPropagation()
  45. // }
  46. // div3.onclick = function(){
  47. // console.log('div3')
  48. // //阻止事件冒泡
  49. // event.cancelBubble = true
  50. // }
  51. //事件冒泡 从里到外执行
  52. /*
  53. 参数1 事件名称 字符串 必填
  54. 参数2 执行函数 必填
  55. 参数3 布尔值
  56. */
  57. div1.addEventListener('click',function(){
  58. console.log('div1')
  59. },false)
  60. div2.addEventListener('click',function(){
  61. console.log('div2')
  62. },false)
  63. div3.addEventListener('click',function(){
  64. console.log('div3')
  65. },false)
  66. div1.addEventListener('click',function(){
  67. console.log('div1')
  68. },true)
  69. div2.addEventListener('click',function(){
  70. console.log('div2')
  71. },true)
  72. div3.addEventListener('click',function(){
  73. console.log('div3')
  74. },true)
  75. /*
  76. 从里到外 事件冒泡 false
  77. 从外到里 事件捕获 true
  78. 先捕获 后冒泡 先从外到里 然后从里到外
  79. */
  80. </script>
  81. </body>
  82. </html>