• js事件委托


    原理

    利用js的事件冒泡原理,把onclick,onmouseenter等事件绑定到父节点上,这样做的好处是:

     1.避免多次循环,例如给ul的li增加样式;

     2.可以给动态增加的节点绑定事件,例如ul中新增的li也需要有事件;

     3.代码简洁,便于维护;

     4.复用函数对象,优化性能;

     原生js实现

    //跨浏览器绑定事件
    function addEventHandler(ele,evt,handler){
    if(ele.addEventListener){
    ele.addEventListener(evt,handler,false);
    }else if(ele.attachEvent){
    ele.attachEvent("on"+evt,handler);
    }else{
    ele["on"+evt] = handler;
    }
    }

    //事件委托;
    function delegate(parent,child,action,callback){
    	addEventHandler(parent,action,function(e){
    var e = e||window.event;
    var target = e.target || e.srcElement; if(child==e.target.tagName.toLowerCase()){ console.log("Click Event"); callback(); } }) }
    delegate(ul,'li','click',function(){});

      这里要注意ie 和 w3c的事件源不同;

  • 相关阅读:
    python之路3-元组、列表、字典、集合
    python之路2-字符串操作
    Python之路1-变量、数据类型、循环语法
    config模块
    os模块
    logging模块
    控制台报错定位问题所在
    time模块
    random模块
    列表生成
  • 原文地址:https://www.cnblogs.com/summer323/p/5341783.html
Copyright © 2020-2023  润新知