1. 程式人生 > 其它 >讓事件先冒泡後捕獲

讓事件先冒泡後捕獲

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#outer{
text-align: center;
width: 400px;
height: 400px;
background-color: #ccc;
margin: 0 auto;
}
#middle{
width: 250px;
height: 250px;
background-color: #f00;
margin: 0 auto;
}
#inner{
width: 100px;
height: 100px;
background-color: #0f0;
margin: 0 auto;
border-rad
}
</style>
</head>
<body>
<div id='outer'>
<span>outer</span>
<div id='middle'>
<span>middle</span>
<div id='inner'>
<span>inner</span>
</div>
</div>
</div>
<script>
function $(element){
return document.getElementById(element);
}
function on(element,event_name,handler,use_capture){
if(addEventListener){
$(element).addEventListener(event_name,handler,use_capture);
}
else{
$(element).attachEvent('on'+event_name,handler);
}
}

on("outer","click",o_click_c,false);
on("outer","click",o_click_b,true);
on("middle","click",m_click_c,false);
on("middle","click",m_click_b,true);
on("inner","click",i_click_c,false);
on("inner","click",i_click_b,true);

function o_click_c(){
console.log("outer_捕獲");
//alert("outer_捕獲");
}
function m_click_c(){
console.log("middle_捕獲")
//alert("middle_捕獲");
}
function i_click_c(){
console.log("inner_捕獲")
//alert("inner_捕獲");
}
function o_click_b(){
console.log("outer_冒泡")
//alert("outer_冒泡");
}
function m_click_b(){
console.log("middle_冒泡")
//alert("middle_冒泡");
}
function i_click_b(){
console.log("inner_冒泡")
//alert("inner_冒泡");
}
</script>
</body>
</html>