冒泡的概念就是 當子元素觸發事件的時候 相應的祖宗十八代素也會觸發相同的事件(前提父元素也添加了一樣的事件)eg:兒子 有一個onclick 祖宗十八代 也有onclick 當點擊兒子的時候 祖宗十八代的點擊事件也會被觸發 有時候這種情況會導致很多問題 所以要阻止冒泡 只有被點擊的元素才觸發事件 不... ...
冒泡的概念就是 當子元素觸發事件的時候 相應的祖宗十八代素也會觸發相同的事件
(前提父元素也添加了一樣的事件)
eg:兒子 有一個onclick 祖宗十八代 也有onclick
當點擊兒子的時候 祖宗十八代的點擊事件也會被觸發
有時候這種情況會導致很多問題 所以要阻止冒泡
只有被點擊的元素才觸發事件
不是所有的事件都會冒泡
onblur onfocus onload onerror 沒有
其實事件的觸發一共有三個過程 : 捕獲階段--->處於目標階段---->冒泡階段
標準瀏覽器冒泡順序 子元素-->父輩-->body-->document--->window
IE 子元素-->父輩-->body-->document
接下來上代碼 很容易 做一個相容處理就好了
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>阻止冒泡</title>
</head>
<body>
<input type="button" id="cancelBubble" value="取消冒泡"/>
<script type="text/javascript">
var btn=document.getElementById("cancelBubble");
document.onclick=function(){
alert("冒泡");
}
btn.onclick=function(event){
var event=event||window.event;//相容
if(event && event.stopPropagation){
event.stopPropagation();
}
else{
//IE 678
event.cancelBubble=true;
}
alert("沒有冒泡");
}
</script>
</body>
</html>