• 关于DOM事件的一个例子


    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>event</title>
        <style>
            .target {
                float: left;
                width: 100px;
                height: 100px;
                background: #359;
            }
            .outer-div {
                display: none;
                float: left;
                width: 150px;
                height: 80px;
                border: 1px solid #888;
            }
            .inner-div {
                float: left;
                width: 80px;
                height: 50px;
                background: #194;
            }
        </style>
    </head>
    <body>
        <!-- single -->
        <div class="target"></div>
        <div class="outer-div">
            <div class="inner-div"></div>
        </div>
    
        <!-- // mutil -->
        <ul>
            <li>
                <div class="target"></div>
            </li>
        </ul>
    <script type="text/javascript">
        /**
         *    知识点,事件捕获、执行、冒泡
         *    #指定捕获过程发生 
         *        addEventListener(event, func, useCapture) 
         *        useCapture:是否在捕获阶段触发?默认false
         *    #阻止继续捕获
         *        (w3c)
         *        window.captureEvents(Event.eventType) 
         *        window.releaseEvents(Event.eventType)
         *        (IE)
         *        object.setCapture()
         *        object.releaseCapture()
         *    #阻止继续冒泡
         *        event.stopPropagation()、
         *        (IE)event.cancelBubble = true;
         *    #不能冒泡的事件
         *    mouseenter、mouseleave、focus、blur
         */
        
        var timer = null;
        var target = document.querySelector('.target');
        var outer = document.querySelector('.outer-div');
        var inner = document.querySelector('.inner-div');
    
        inner.addEventListener('click', function(event) { console.log('click inner')}, false);
    
        target.addEventListener('mouseenter', function(event) {
            openOuter();
        });
        target.addEventListener('mouseleave', closeOuter);
    
        outer.addEventListener('mouseenter', function(event) {
            console.log('enter outer');
            openOuter();
        });
        outer.addEventListener('mouseleave', function(event) {
            console.log('leave outer');
            closeOuter();
        });
        inner.addEventListener('mouseenter', function(event) { console.log('enter inner'); });
        inner.addEventListener('mouseleave', function(event) { console.log('leave inner'); });
    
        function openOuter() {
            clearTimeout(timer);
            outer.style.display = 'block';
        }
    
        function closeOuter() {
            timer = setTimeout(function() {
                outer.style.display = 'none'; 
            }, 200);
        }
    </script>
    </body>
    </html>
     
    <!-- single -->
        <div class="target"></div>
        <div class="outer-div">
            <div class="inner-div"></div>
        </div>
  • 相关阅读:
    有种感觉叫失去才知道珍惜
    Alternativa 3D Series – Tutorial 1 – Getting Started
    ruby中使用MiniMagick处理图片
    RMagick动态生成图片
    Rails Model验证之强大
    Rails验证信息的中文化
    Prawn:Ruby生成PDF更简捷的选择
    ruby gem相关命令使用
    Ruby Gems(1)–简要介绍和ruby on rails安装
    Rails安装
  • 原文地址:https://www.cnblogs.com/zhoulingfeng/p/5655496.html
Copyright © 2020-2023  润新知