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

    事件委托

    解决问题:如果页面上所有需要绑定事件的元素都单个绑定相应的事件处理程序,1、那么将会绑定很多单独的程序,全局内存占用很多,影响页面性能,2、访问DOM次数太多,延迟页面交互就绪时间

    原理:利用事件冒泡,为顶级页面元素或者模块中最头部元素指定事件处理函数

    html:

    <div id="box">
        <ul id="list">
            <li id="one">1行</li>
            <li id="two">2行</li>
            <li id="three">3行</li>
        </ul>
    </div>

    js:

    var ele = document.getElementById('box');
    EventUtil.addHandler(ele, 'click', function (event) {
        var event = EventUtil.getEvent(event);
        // 获取发生事件的目标元素
        var target = EventUtil.getTarget(event);
        // 获取事件目标元素的id选择器名
        var id = target.id;
        // 根据不同的元素做不同的处理
        switch(id) {
            case 'box':
            {
                handler(event);
            }
                break;
            case 'list':
            {
                console.log(target);
            }
                break;
            case 'one':
            {
                target.style.color = 'red';
            }
                break;
            case 'two':
            {
                target.style.color = 'blue';
            }
                break;
            case 'three':
            {
                target.style.color = 'green';
            }
                break;
            default: break;
        }
    });
  • 相关阅读:
    富文本的使用
    sql
    # 多线程:为啥无法避免并发修改异常?(假设有两个线程,线程A,线程B),怎么避免并发修改异常?
    File&&字节流
    IO-字符流
    第二周疑问点
    异常
    常用API-Object+String
    学习JavaSE过程中的疑问点(第一周)
    JavaOOP
  • 原文地址:https://www.cnblogs.com/yelongsan/p/9406140.html
Copyright © 2011-2022 走看看