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

jQuery动态添加html元素后,响应事件的问题记录

时间:2015-08-11 19:12:27      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:jquery动态添加html 响应事件

var li =
    "<li>" +
    "<a>" +
       // 缩略图 点击部分 index=‘" + i + "‘
       "<span class=‘CameraImg‘ type=‘play‘ index=‘" + i + "‘>" +
         "<img src=‘/HiHomeBabyMS/Public/img/img.jpg‘ />" +
         "<span class=‘CameraPlay‘></span>" +
       "</span>" +
       // video信息部分, 修改名称 删除
       "<span class=‘CameraInfo VideoName‘ type=‘edit‘ video_id=‘" + video[‘video_id‘] + "‘>" + video[‘name‘] + "</span>" +
       "<span class=‘CameraInfo‘ type=‘delete‘>" +
         "<i class=‘IconView‘></i>" + record +
         "<i class=‘DeleteVideo‘ id=‘delete_" + i + "‘ index=‘" + i + "‘></i>" +
       "</span>" +
    "</a>" +
    "</li>";

$("#CameraUl").append(li);


如上,动态添加html元素后,响应事件的添加方法:

$("#InnerMainId #CameraUl").unbind(‘click‘).on(‘click‘, ‘li>a>span‘, function() {
    var type = $(this).attr(‘type‘);
    if (type == "play") {
        var index = $(this).attr(‘index‘);
        // TODO
    } else if (type == "edit") {// 修改
        // TODO
    } else {// 删除
        // TODO
    }
    event.stopImmediatePropagation();
});

 这样可以为li中的各个元素添加不同的属性。而如下的分各个元素的添加点击事件的做法,会发生覆盖,即只能响应最后一个事件:

$(document).unbind(‘click‘).on(‘click‘, ‘.CameraImg‘, function(event) {
    // TODO 
});
$(document).unbind(‘click‘).on(‘click‘, ‘.VideoName‘, function(event) {
    // TODO
});
$(document).unbind(‘click‘).on(‘click‘, ‘.DeleteVideo‘, function(event) {
    // TODO 
});

即只有类名为DeleteVideo的元素的点击事件 可以响应。

本文出自 “羊仔” 博客,请务必保留此出处http://5934497.blog.51cto.com/5924497/1683655

jQuery动态添加html元素后,响应事件的问题记录

标签:jquery动态添加html 响应事件

原文地址:http://5934497.blog.51cto.com/5924497/1683655

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