当我尝试删除我使用附加添加的元素时,我遇到了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事件没有绑定到它们。
答案 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
});