출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

문제발생, h1을 누르면 div영역도 같이 눌려진다.

<!DOCTYPE html>
<html lang="">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>이벤트 전달</title>
    
    <style>
    
        div{
            height: 300px;
            background-color: black;
        }
        
        h1{
            background-color: pink;
        }
    </style>
    
    <script>
    
        window.onload = function(){
            
            var div = document.querySelector('div');
            var h1 = document.querySelector('h1');
            
            div.onclick = function(){
                console.log('div 영역에 클릭이벤트 발생!');
            }
            h1.onclick = function(){
                console.log('h1 영역에 클릭이벤트 발생!');
            }
            
            
        };
    </script>
</head>

<body>
    
    <div>
    
        <h1> 클릭하세요 :) </h1>
    </div>
</body>
</html>

 

 

 

이벤트 객체의 stopPropagation() 메서드 사용!

익스플로러는 cancelBubble 속성을 true로 변경하는데 잘안쓰니까 패스..

<!DOCTYPE html>
<html lang="">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>이벤트 전달</title>
    
    <style>
    
        div{
            height: 300px;
            background-color: black;
        }
        
        h1{
            background-color: pink;
        }
    </style>
    
    <script>
    
        window.onload = function(){
            
            var div = document.querySelector('div');
            var h1 = document.querySelector('h1');
            
            div.onclick = function(){
                console.log('div 영역에 클릭이벤트 발생!');
            }
            h1.onclick = function(){
                console.log('h1 영역에 클릭이벤트 발생!');
            }
            
            h1.onclick = function(e){
                
                var event = e || window.event;
                console.log('h1 영역에 클릭이벤트 발생쓰!!!!!')
                
                if(event.stopPropagation){
                    event.stopPropagation();
                }
                
            };
            
        };
    </script>
</head>

<body>
    
    <div>
    
        <h1> 클릭하세요 :) </h1>
    </div>
</body>
</html>

+ Recent posts