<li
jquery を使用して動的に作成された> リストがあります。リストには、リスト項目を削除するための入力フィールドとマイナス アイコンがあります。リストに新しいアイテムを挿入するサンプル コードを次に示します。
$list = $("#servicesList");
$list.append(""<li data-value='" + uniqueIdentifier + "'>
(same line) <input type='text' class='input-mini' id='price' value='2500'>
(same line) <i id='icon-minus' class='icon-minus-sign'></i></li>
このリスト アイテムは、ul アイテムである div servicesList に動的に追加されます。
<ul id="servicesList">
</ul>
ここで、誰かがリスト アイテムのマイナス アイコンをクリックしたときにアイテムを削除する必要があります。リスト アイテムは動的に生成されるため、ドキュメント メソッドを使用してクリック イベント リスナーを追加しています。動作しないコードは次のとおりです。
$(document).on('click','#icon-minus',function() {
var $list = $("#servicesList"),
listValue = $(this).attr("data-value");
$list.find('li[data-value="' + listValue + '"]').slideUp("fast", function()
{
$(this).remove();
});
上記のコードは機能しません。「#servicesList li」をオンクリック関数に渡すと、コードは機能しますが、テキスト入力フィールドをクリックしてもリスト項目が削除されます。マイナスアイコンをクリックしたときだけリスト項目を削除したい。