删除jQuery添加的元素

时间:2012-01-11 19:33:59

标签: jquery

当我尝试删除我使用附加添加的元素时,我遇到了jQuery的困难。我在下面提供了我的代码。我尝试使用live()绑定自定义事件,然后使用trigger()来触发自定义事件,但事件似乎永远不会触发。我也尝试隐藏元素而不是删除它,但这也不起作用。我错过了什么?如何删除附加的元素?

$('ul.chooseTags label.tag').click(function() {
    var tagId = $(this).attr('for');
    var tagSelectedId = 'selected' + tagId;
    if ($(this).hasClass('selected')) {
        $(this).removeClass('selected');
        $('input#' + tagId).removeAttr('checked');
        $('ul.selectedTags').remove('li#' + tagSelectedId);
    }
    else {
        $(this).addClass('selected');
        $('input#' + tagId).attr('checked', 'checked');
        $('ul.selectedTags').append('<li id=' + tagSelectedId + '"><label class="tag"><span>' + $(this).text() + '</span></label></li>');           
    }
});

顺便说一句,隐藏了复选框,这就是为什么click事件没有绑定到它们。

1 个答案:

答案 0 :(得分:0)

您必须将'点击'切换为'live''on

问题是click事件没有绑定到刚刚创建的元素

如果您使用的是jquery 1.7或更高版本:

$(document).on('click', 'ul.chooseTags label.tag', function(){
    // code
});

否则:

$('ul.chooseTags label.tag').live('click', function() {
    // code
});