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,

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

  • 相关阅读:
    ubuntu下erlang man的安装
    ranch分析学习(四)
    ranch分析学习(三)
    ranch分析学习(二)
    ranch分析学习(一)
    IIS 配置错误解决方法集合
    Visual Studio 2013中添加mimeType
    wordpress 开发日志及技巧收集
    css3 动画
    高宽比例计算方法及等比高宽修改计算方法
  • 原文地址:https://www.cnblogs.com/liang1/p/5659333.html
Copyright © 2011-2022 走看看