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

    利用事件冒泡的特性,将里层的事件委托给外层事件,根据event对象的属性进行事件委托,改善性能。
    使用事件委托能够避免对特定的每个节点添加事件监听器;事件监听器是被添加到它们的父元素上。事件监听器会分析从子元素冒泡上来的事件,找到是哪个子元素的事件。
     <!-- HTML -->
    <table id="out" border="1" style="cursor: pointer;">
        <tr>
          <td>table01</td>
          <td>table02</td>
          <td>table03</td>
          <td>table04</td>
        </tr>
    </table>
    var out = document.getElementById("out");
        if(out.addEventListener){
            out.addEventListener("click",function(e){
                var e = e||window.event;
                //IE没有e.target,有e.srcElement
                var target = e.target||e.srcElement;
                //判断事件目标是否是td,是的话target即为目标节点td
                if(target.tagName.toLowerCase()=="td"){
                    changeStyle(target);
                    console.log(target.innerHTML);
                }
            },false);
        }else{
            out.attachEvent("onclick",function(e){
                var e = e||window.event;
                //IE没有e.target,有e.srcElement
                var target = e.target||e.srcElement;
                //判断事件目标是否是td,是的话target即为目标节点td
                if(target.tagName.toLowerCase()=="td"){
                    changeStyle(target);
                    console.log(target.innerHTML);
                }
            });
        };
    };
    function changeStyle(ele){
        ele.innerHTML = "已点击"
        ele.style.background="#900";
        ele.style.color = "#fff";
     }
  • 相关阅读:
    数据结构前言
    Linux---远程连接、命令行基础、文件及目录管理
    HTTP协议
    Docker---dockerfile
    Docker---指令
    Docker---介绍
    进程模块的使用
    numpy---(精简)
    OpenJudge/Poj 2105 IP Address
    OpenJudge 2786 Pell数列
  • 原文地址:https://www.cnblogs.com/fydxx/p/6924992.html
Copyright © 2011-2022 走看看