事件委托

本文阐述了事件委托在网页开发中的应用,通过减少管理函数、降低内存占用和减少DOM结构与JS代码关联,显著提升性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事件委托就是为了提高性能,在一个页面上使用一个事件来管理多种类型的事件。

例如需要下面三个li上分别绑定不同的事件:

程序代码  Example Source Code

<ul id="box">
        <li id="c_border">蜗爱css -事件委托demo1-点我边框变红</li>
        <li id="c_height">蜗爱css -事件委托demo2-点我高度变高</li>
              <li id="c_back">蜗爱css -事件委托demo3-点我背景变色</li>
</ul>


[demo]

通常写法:

程序代码  Example Source Code

(function(){
         function $(id){return document.getElementById(id);}
         $('c_border').onclick = function(){
            this.style.cssText = "border:1px solid red";
            //this.style.border = "1px solid red";
         };
          $('c_height').onclick = function(){
            this.style.height = 40 + 'px';
         };
          $('c_back').onclick = function(){
            this.style.cssText = "background:#000;color:#fff;";
         };
    })()


事件委托写法:
程序代码  Example Source Code

(function(){
         function $(id){return document.getElementById(id);}
         oUl = $('box');
         oUl.onclick = function(ev){
            var ev = ev || window.event;  
            var target = ev.target || ev.srcElement;  
            switch(target.id){
                case "c_border":
                $('c_border').style.cssText = "border:1px solid red";
                break;
                case "c_height":
                $('c_height').style.height = 40 + 'px';
                break;
                case "c_back":
                $('c_back').style.cssText = "background:#000;color:#fff;";
                break;
            }
        }
    })()


优点:
事件委托对于web应用程序的性能有如下几个优点:
1.需要管理的函数变少了
2.占用的内存少了
3.javascript代码和Dom结构之间的关联更少了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值