zoukankan      html  css  js  c++  java
  • js-事件委托

    事件委托一般用于动态生成的元素中使用,如下:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
        .item{
            width:100px;
            height:100px;
            background:#1ABC9C;
        }
        </style>
        <script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
    </head>
    <body>
        <div>
            <ul>
                <li class="item">
                    <div class="title">
                        今天天气不错
                    </div>
                    <p class="desc">xxxxxxs</p>
                </li>
                <li class="item">2</li>
                <li class="item">3</li>
                <li class="item">4</li>
                    
            </ul>
        </div>
    <script type="text/javascript">
        $(function(){
      
            var lio = "<li class='item'>5</li>";
            $("ul").append(lio);
    
            $("li.item").click(function(){
      /*动态生成的li5 是不会执行点击事件*/
    }) })
    </script> </body> </html>

    解决这个问题我们就要利用事件捕捉的原理

    $(function(){
            $("div > ul").on("click",function(event){
                var e = event.target;
                /*事件委托*/
                if( e.className == "item"){
                    alert("li.item");
                }
            });
            var lio = "<li class='item'>5</li>";
            $("ul").append(lio);
    
    
        })

    在上面解决的方案中,并不是直接给li绑定事件,而是给所有的li父级元素绑定事件.根据事件扑捉的原理,事件会自上而下传递给li,

    我们只需要通过一些简单的条件判断来确定我们的目标元素即可;

  • 相关阅读:
    游戏方案
    团队介绍
    【面向对象程序设计】作业四
    FIFO与LRU实现(Java)
    spring事务介绍
    微信抢红包算法
    Hibernate Dao映射配置通用接口类反射获取加载calass实例
    股票两次买卖最大收益(java)
    Eclipse安装JD-Eclipse反编译插件看源码
    Java GC调优
  • 原文地址:https://www.cnblogs.com/liang1/p/5659333.html
Copyright © 2011-2022 走看看