zoukankan      html  css  js  c++  java
  • 关于delegate事件委托怎么用



    给每个li添加点击事件,每次点击都要循环遍历一遍,如果有很多li 就会影响性能。

    先来看看普通函数怎么实现点击事件
    <div class="box">
    <ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    </ul>
    </div>
    <input class='btn' type="button" value="点击添加">
    //普通的点击事件
    $(function(){
    $("li").click(function(){
    $(this).css('background','red')
    });
    });
    // delegate 事件委托:
    $(function(){
    $('ul').delegate("li",'click',function(ev){
    $(this).css('background','red')
    //这里的this 只的是li,那怎么找到ul呢?
    $(ev.delegateTarget).css('background','green')//这个可以找到委托人ul
    //那取消委托呢?
    $($(ev.delegateTarget)).undelegate("click")
    });
    })
    // delegate 事件委托:事件委托的有点1.提高性能 2.后面追加的元素也带有相同的事件
    $(function(){
    $('ul').delegate("li",'click',function(ev){
    $(this).css('background','red')
    //这里的this 只的是li,那怎么找到ul呢?
    $(ev.delegateTarget).css('background','green')//这个可以找到委托人ul
    //那取消委托呢?
    $($(ev.delegateTarget)).undelegate("click")
    });
    $(".btn").on("click",function(){
    $(".box ul").append("<li>追加进来的</li>")
    console.log($(".box ul"))
    })
    })

  • 相关阅读:
    如何用Android Studio打多包名APK
    EventBus框架在Android多Pane(Fragment)中的应用
    Android WebView使用深入浅出
    dp和px转换
    android button minheight问题
    Java链式编程接口
    Java多线程共享变量控制
    一致性Hash算法
    ARP (地址解析协议)
    FTP下载导致Zip解压失败的原因
  • 原文地址:https://www.cnblogs.com/hilxj/p/11113847.html
Copyright © 2011-2022 走看看