ユーザー入力用のキャンセル ボタンをコーディングしようとしています。ユーザーはアイテムをダブルクリックした後にアイテムを編集でき、キャンセル ボタンを使用してアクションをキャンセルできます。
テキスト入力ボックスにキャンセル ボタンが付いているので、コードのダブルクリック部分はうまく機能します。しかし、DOM が変更されたため、jQuery は新しい要素を選択しなくなりました。そのため、キャンセル ボタンをクリックしてもイベントは発生しません。説明のために、コードは次のとおりです。
<div id="main">
<ul class="todoList">
<li id="todo-1" class="todo">
<div class="text">New Todo Item. Doubleclick to Edit
</div>
<div class="actions"> <a href="#" class="edit">Edit</a></div>
</li>
</ul>
</div>
var currentTODO;
$('.todo').on('dblclick', function () {
$(this).find('a.edit').click();
});
$('.todo a').on('click', function (e) {
e.preventDefault();
currentTODO = $(this).closest('.todo');
});
$('.todo a.edit').on('click', function () {
var container = currentTODO.find('.text');
if (!currentTODO.data('origText')) {
// Saving the current value of the ToDo so we can
// restore it later if the user discards the changes:
currentTODO.data('origText', container.text());
} else {
// This will block the edit button if the edit box is already open:
return false;
}
$('<input type="text">').val(container.text()).appendTo(container.empty());
container.append(
'<div class="editTodo">' +
'<a class="cancel" href="#">Cancel</a>' +
'</div>');
});
// The cancel edit link:
$('.cancel').on('click', function () {
alert("oops");
});
またはここ: http://jsfiddle.net/S7f83/42/
したがって、私の質問は、DOM が変更された後にイベントを「バインド」するにはどうすればよいですか? どうもありがとうございました