事件(冒泡/委托)

2016-12-19  本文已影响0人  智多牛
    <body>  
    
        <!-- 父对象 -->
        <div id="father">
            
            <!-- 子对象 -->
            <div id="son"></div>
            
        </div>
        
    </body>
    
    <style>
        
        #father
        {
            width: 200px;
            height: 200px;
            background-color: #000;
            
            overflow:hidden;
        }
        
        #son
        {
            width: 100px;
            height: 100px;
            margin: 50px 0px 0px 50px;
            background-color: #eee; 
        }
        
    </style>
    
    <script>
        
        /**
         * 冒泡:由目标节点,向父节点冒泡
         */
        var father = document.getElementById('father');
        
        var son    = document.getElementById('son');
        
        father.addEventListener('click',function(e)
        {
            console.log('father')
        })
        
        son.addEventListener('click',function(e)
        {
            console.log('son')
        })
        
        /**
         * 输出:son father
         */
        
        
        
        
        /**
         * 禁止冒泡
         */
        father.addEventListener('click',function(e)
        {
            console.log('father')
        })
        
        son.addEventListener('click',function(e)
        {
            console.log('son')
            
            e.stopPropagation();
        })
        
        /**
         * 输出:son
         */
        
        
        
        
        /**
         * 事件委托:在父对象上侦听所有子对象事件,并判断是哪个元素发出的
         */
        
        father.addEventListener('click',function(e)
        {
            console.log(e.target.id)  //输出:son
            
        })
        
    </script>
上一篇下一篇

猜你喜欢

热点阅读