事件委托

常见的导航栏中,li 的 onclick 事件,常常需要为每个 li 添加各自的事件。而采用事件委托的话,则可以通过事件冒泡,只需要为 ul 指定处理事件,就可以管理各个 li 的事件。


<ul id="list">
    <li id="a">A</li>
    <li id="b">B</li>
    <li id="c">C</li>
</ul>

若需要为三个 li 添加处理程序,常见的是:



var a = document.getElementById("a");
var b = document.getElementById("b");
var c = document.getElementById("c");

//利用自己定义的通用工具对象EventUtil (参见 “JavaScript 通用函数整理”)
EventUtil.addHandler(a,"click",function(){alert("A")});
EventUtil.addHandler(b,"click",function(){alert("B")});
EventUtil.addHandler(c,"click",function(){alert("C")});

利用事件委托后:


var list = document.getElementById("list");

EventUtil.addHandler(list,"click",function(event){
    event = EventUtil.getEvent(event);
    var target = EventUtil.getTarget(event);

    switch(target.id){
        case "a":
            alert("A");break;
        case "b":
            alert("B");break;
        case "c":
            alert("C");break;
    }
});

这样一来,减少了页面中添加的事件的个数,也就是减少了函数对象,占用更少的内存,提高页面的整体运行性能。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值