码迷,mamicode.com
首页 > Web开发 > 详细

js-事件委托

时间:2016-07-11 10:28:51      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

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

<!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,

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

js-事件委托

标签:

原文地址:http://www.cnblogs.com/liang1/p/5659333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!