2012-01-11 13 views
0

追加する要素に追加する要素を削除しようとすると、jQueryで問題が発生します。私は以下の私のコードを含んだ。私はlive()でカスタムイベントをバインドしてからトリガー()を使ってカスタムイベントを発生させようとしましたが、イベントは発生しません。私はまた、それを削除する代わりに要素を隠そうとしましたが、それはどちらもうまくいきません。私は何が欠けていますか?追加された要素を削除するにはどうすればよいですか?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>');   
    } 
}); 

ところで、チェックボックスは非表示になっているため、クリックイベントはそのイベントにバインドされていません。

+0

一部のHTMLが役立ちます。 –

答えて

0

あなたつもりが

「on」にを切り替える必要がありに「ライブ」を「クリック」の問題は、クリックイベントは、あなただけの

を作成した要素にバインドされていないということですそうでない場合は

$(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を監視し、その場で作成された要素 –

関連する問題