jQueryが愚かであると判断したか、単に何かが欠けているだけですが、次のコードを使用して追加された要素を削除しても機能しません:
$('#add-show').click(function() {
if ( $('#fav-search').val() == '' ) {
// do nothing
}
else {
$('.fav-results').append('<code><a href="#"><span class="icon-remove"></span></a>' + $('#fav-search').val() + '</code>');
}
});
$('.fav-results code').on('click', 'a', function() {
$(this).parent().remove();
});
そして、興味のある人のための HTML:
<div class="input-append">
<input class="span2" id="fav-search" type="text">
<button class="btn" type="button" id="add-show"><span class="icon-plus"></span></button>
</div>
<div class="pull-right fav-results">
<?php foreach($shows as $show): ?>
<code><a href="#"><span class="icon-remove"></span></a><?php echo $show['showname'] ?></code>
<?php endforeach ?>
</div>
データベース テーブルから取得した既存のタイトルは削除できますが、追加された要素は削除できません。
私はもともと .click ハンドラーを使用していましたが、ページの読み込み時にDOMに存在する要素に対してのみ機能することを読みました。同じ性質の以前の質問を読んだ後、.on の使用に変更しましたが、それでも動作は同じです。