JQuery中事件冒泡
定义
在一个对象上触发某类事件,就会执行此事件程序,如果没有处理事件就会向这个对象的父级对象传播 直至它被处理,最顶层老大为document对象。
作用
事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上)
阻止事件气泡
事件气泡有时是不需要的 通过event.stopPropagation() 或者event.preventDefault()组织 ----合并写法:return false;
解决思路
假如页面中有一个模块1,模块1中有又一个模块2,模块2中有个模块3,如果点击模块3中的触发事件,如没有处理程序,他就会向模块2执行,模块2没有继续向模块1执行,此为一个冒泡事件,如果想在模块3就终止需要---return false
具体实例代码
<!DOCTYPE html>
<html> <head> <meta charset="UTF-8"> <title></title> <style> .father {width: 500px;height: 500px;background: pink;} .son {width: 250px;height: 250px;background: red; } .grandson {width: 150px;height: 150px; background: gold;} </style> <script type="text/javascript" src="js/jquery-1.12.4.min.js" ></script> <script> $(function(){ var $box1 = $('.father'); var $box2 = $('.son'); var $box3 = $('.grandson'); $box1.click(function() { alert('father'); }); $box2.click(function() { alert('son'); return false; }); $box3.click(function(event) { alert('grandson'); return false; }); // $(document).click(function(event) { // alert('grandfather'); // }); }) </script> </head> <body> <div class="father"> <div class="son"> <div class="grandson"></div> </div> </div> </body> </html>易错点
return false 写在函数内部