2012-01-11 7 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, 확인란이 숨겨져있어 클릭 이벤트가 표시되지 않습니다.

+0

일부 HTML이 도움이됩니다. –

답변

0

당신거야 또는

문제 '에'는 클릭 이벤트가 방금

을 만든 요소에 바인더 제본되지 않은 것을 '클릭'에 '라이브'를 을 전환해야 그렇지 않으면

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

:

당신은 JQuery와 1.7 이상을 사용하는 경우
$('ul.chooseTags label.tag').live('click', function() { 
    // code 
}); 
+0

그건 작동하지 않습니다. 새로 만든 요소가 아닌 HTML의 일부 요소에 live()를 사용하고 있습니다. – stomcavage

+0

새로운 요소를 잡는 것이 아이디어라면, 이것은 그가 필요로하는 것입니다. 다른 선택기를 사용하면 라이브 메서드에서 사용할 수 있고 작동 할 것이고, 라이브는 HTML을 모니터하고 즉시 작성된 요소에 대해서도 실행됩니다 –