• 事件委托


    本节的知识需要DOM事件监听器、事件流、事件触发元素等基础。

    事件委托就是利用事件冒泡原理,把处理任务委托给父元素或者祖先元素(通常用父元素),我们通过目标对象来判断事件源,并执行事件处理。

    示例1

    <body>
    <ul id="ul">
        <li><a>油条</a></li>
        <li><a>肉包</a></li>
        <li><a>米饺</a></li>
        <li><a>鱼粉</a></li>
    </ul>
    
    <script>
        var elul=document.getElementById("ul");
        //无需监控所有元素事件,利用事件冒泡原理,监控他的上级元素即可。
        elul.addEventListener('click',G,false);
    
        function G(e) {
            var ev = e || windows.event;
            //e.srcRlement 是IE特有的
            //e.target 是dom标准
            var target= ev.target || ev.srcElement;
            // target.nodeName 获取元素
            if(target.nodeName.toLowerCase() ==="a"){
                alert(target.innerHTML);
            }
        }
    </script>
    </body>
    

    示例2

    <body>
    <ul id="ul">
        <li>油条</li>
        <li>肉包</li>
        <li>米饺</li>
        <li><a>鱼粉</a></li>
    </ul>
    
    <script>
        var elul = document.getElementById("ul");
        //无需监控所有元素事件,利用事件冒泡原理,监控他的上级元素即可。
        elul.addEventListener("click", getEvent, false)
    
        function getEvent(e) {
            var ev = e || window.event;
            //e.srcElement 是IE特有的
            //e.target 是dom标准
            var target = ev.target || ev.srcElement;
            // target.nodeName 获取元素。获取的元素是大写的,转换成小写
            if (target.nodeName.toLowerCase() === "a") {
                alert(target.innerHTML);
            }
            if (target.nodeName.toLowerCase() === "li") {
                alert(target.innerHTML);
            }
        }
    </script>
    </body>
    

      

  • 相关阅读:
    如何唤醒一个处于阻塞状态下的线程
    如何终止一个线程
    网络编程基础_5.1聊天室-客户端
    网络编程基础_4.2TCP-客户端
    网络编程基础_4.1TCP_服务端
    网络编程基础_3.APC队列
    网络编程基础_2.等待事件
    网络编程基础_1.等待句柄
    Window提高_3.1练习_双进程守护
    Windows提高_2.3第三部分:内核区同步
  • 原文地址:https://www.cnblogs.com/max-hou/p/9056341.html
Copyright © 2020-2023  润新知