阻止JavaScript事件冒泡传递

泪湿孤枕 提交于 2020-03-24 02:40:05
<html>
    
<head>
    
<title> 阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)</title> 
    
<meta name="keywords" content="JavaScript,事件冒泡,cancelBubble,stopPropagation" /> 
    
<script type="text/javascript"> 
        
function doSomething (obj,evt) 
        { 
            alert(obj.id); 
            
var e=(evt)?evt:window.event; //判断浏览器的类型,在基于ie内核的浏览器中的使用cancelBubble
            if (window.event) 
            { 
                e.cancelBubble
=true
            } 
            
else 
            { 
                
//e.preventDefault(); //在基于firefox内核的浏览器中支持做法stopPropagation
                e.stopPropagation(); 
            } 
        } 
    
</script> 
    
</head> 
    
<body> 
        
<div id="parent1" onclick="alert(this.id)" style="width:250px;background-color:yellow"> 
            
<p>This is parent1 div.</p> 
            
<div id="child1" onclick="alert(this.id)" style="width:200px;background-color:orange"> 
                
<p>This is child1.</p> 
            
</div> 
            
<p>This is parent1 div.</p> 
        
</div> 
        
<br /> 
        
<div id="parent2" onclick="alert(this.id)" style="width:250px;background-color:cyan;"> 
            
<p>This is parent2 div.</p> 
            
<div id="child2" onclick="doSomething(this,event);" style="width:200px;background-color:lightblue;"> 
                
<p>This is child2. Will bubble.</p> 
            
</div> 
            
<p>This is parent2 div.</p> 
        
</div> 
    
</body> 
</html> 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!