2012-01-11 3 views
0

У меня возникли трудности с jQuery, когда я пытаюсь удалить элемент, который я использовал для добавления. Я включил свой код ниже. Я попытался связать настраиваемое событие с live(), а затем с помощью trigger() запустить обычное событие, но событие никогда не срабатывает. Я также попытался скрыть элемент вместо его удаления, но это тоже не сработает. Что мне не хватает? Как удалить добавленный элемент?Удалить элемент, который был добавлен jQuery

$('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>');   
    } 
}); 

BTW, флажки скрыты, поэтому событие click не привязано к ним.

+0

Некоторые HTML помогут. –

ответ

0

Собираешься придется переключаться «нажмите» к «живой» или «на»

Проблема заключается в том, что событие щелчка не привязана к какому элементу вы только что создали

если вы используете JQuery 1.7 или выше:

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

иначе:

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

Это не работает. Вы используете live() для элемента, который является частью HTML, а не для вновь созданного элемента. – stomcavage

+0

Если идея состоит в том, чтобы поймать новые элементы, то это то, что ему нужно, если у него есть другой селектор, он может использовать это в живом методе, и он будет работать, он будет следить за HTML и будет стрелять даже для элементов, созданных на лету –

Смежные вопросы