1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style type="text/css" media="screen"> 7 *{ 8 margin: 0; 9 padding: 0; 10 } 11 html,body{ 12 width: 100%; 13 height: 100%; 14 } 15 16 .flex{ 17 display: flex; 18 justify-content: center; 19 align-items: center; 20 } 21 .box{ 22 width: 800px; 23 height: 500px; 24 border: 2px solid #ccc; 25 } 26 .box>div{ 27 width: 80%; 28 height: 80%; 29 border: 1px solid #ccc; 30 } 31 </style> 32 </head> 33 <body class="flex"> 34 <div class="box flex"> 35 <div class="flex"> 36 <a href="http:www.baidu.com">百度</a> 37 </div> 38 </div> 39 <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> 40 <script type="text/javascript"> 41 $(function(){ 42 $(".box").click(function(){ 43 alert(111) 44 }) 45 $(".box>div").click(function(){ 46 alert(222) 47 }) 48 $(".box>div>a").click(function(e){ 49 // e.stopPropagation() 50 e.preventDefault() 51 alert(333) 52 // return false; 53 }) 54 }) 55 </script> 56 </body> 57 </html>
這是一個很普通的例子,可是包含了不少知識,下面是別人的一個總結:javascript
寫的挺好的,本身也能夠再總結一下:css
e.preventDefault();是阻止事件的默認行爲,好比表單的提交,以前使用到的也就是阻止表單的提交,今天又學到,a標籤的連接跳轉也是一個事件的默認行爲,能夠阻止掉html
e.stopPropagation();是阻止事件冒泡,可是不會阻止事件的默認行爲,點擊以後不會有冒泡,可是會有跳轉java
return false;同時阻止事件冒泡與事件的默認行爲,很適用。jquery
忽然想起來以前在面試過程當中,一個面試官問個人一個問題:有沒有適用過冒泡來實現一些需求,當時很懵逼,通常的冒泡都是直接靜止掉了,還能利用起來,很神奇,要學的東西還有不少啊面試