标签:yellow border and dde event scale alert child style
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>事件冒泡和事件捕获</title> <!-- 事件冒泡和事件捕获是在直系亲属树内才会发生,如:儿子-爸爸-爷爷 ele.addEventListener(a,b,false/true);为元素ele添加事件a,触发事件时执行句柄b 事件冒泡: 第三个参数默认为false,称为事件冒泡 事件执行顺序:由下至上,往上冒泡;如:触发儿子的事件后,先执行儿子的句柄,再执行爸爸的句柄,最后执行爷爷的句柄 事件捕获: 第三个参数为true时;表示捕获了该事件,称为事件捕获 以下称被捕获事件为x,x的儿子称为x-1,x的爸爸称为x+1 事件执行顺序:触发x-1事件时,优先执行x的句柄,再执行x-1的的句柄,最后直系x+1的句柄 tip:通过子系事件触发事件冒泡,被捕获的事件执行顺序要优先于其子系事件,不影响其父系事件 --> <style> #grandpa{ width: 400px; height: 300px; border: 2px solid black; } #parent{ width: 300px; height: 200px; background: yellow; } #child{ width: 200px; height: 100px; background: red; border: 5px solid black; } </style> </head> <body> <div id="grandpa"> 爷爷 <div id="parent"> 爸爸 <div id="child">儿子</div> </div> </div> <script> var grandpa=document.getElementById("grandpa"); var parent=document.getElementById("parent"); var child=document.getElementById("child"); grandpa.addEventListener("click",function(){ alert("我是爷爷"); },false);//最后执行爷爷句柄 parent.addEventListener("click",function(){ alert("我是爸爸"); },true);//当触发儿子的事件时,爸爸句柄先执行 child.addEventListener("click",function(){ alert("我是儿子");//触发儿子事件后,执行爸爸句柄后再执行儿子句柄 },false); </script> </body> </html>
标签:yellow border and dde event scale alert child style
原文地址:https://www.cnblogs.com/vinson-blog/p/12112801.html