js中常用绑定事件的事件代理/委托?

事件代理,又称事件委托,将原本应该绑定在子元素身上的事件绑定在父元素身上,让父元素担当事件监听的职务,本质是触发事件冒泡。

优点:提高性能,节约内存,新添加的子元素也能绑定上事件。

缺点:使用不当会造成事件在不应该触发时触发。

css的代码

<style>
        ul {
            background-color: pink;
        }

        li {
            border: 1px solid red;
            width: 300px;
        }
    </style>

    <button>添加</button>
    <ul>
        <li class="myli">列表1</li>
        <li class="myli">列表2</li>
        <li class="myli">列表3</li>
    </ul>

js代码

let myli = document.querySelectorAll(".myli");
        let but = document.querySelector("button");
        let ul = document.querySelector("ul");
        let num = 3;
        but.onclick = function () {
            let li = document.createElement("li")
            num++;
            li.innerHTML = "列表" + num;
            li.className = "myli";
            ul.appendChild(li);
        }
        // 事件代理(事件委托),将原本应该绑定在子元素身上的事件绑定在父元素身上
        ul.onclick = function (e) {//触发ul和li
            console.log(e);
            console.log(111);
            if (e.target.className == "myli") {//事件对象e里面的类名
                console.log(e.target.innerHTML);
            }
        }

示例

点击添加按钮,添加列表

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值