zoukankan      html  css  js  c++  java
  • 事件委托

    本节的知识需要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>
    

      

  • 相关阅读:
    matlab后处理保存avi动画
    Python3在Windows安装配置及简单试用
    Matlab,C++存取二进制
    批量修改文件名
    这是我的第一篇博客园博客
    android的平台架构及特性
    Android开发学习
    跟着9张思维导图学习Javascript
    如何使用css和jquery控制文章标题字数?
    分离构造器(2-2)
  • 原文地址:https://www.cnblogs.com/max-hou/p/9056341.html
Copyright © 2011-2022 走看看