これは、jqueryセレクタにバインドされたイベントリスナーがどのように処理されるかについての、より多くの学習課題です。セレクタの変更に基づいてイベントのバインドを解除して再バインドする方法
はので、私は次のコードを持っていると言う:1の最初のクリックで
<html>
<div class = "one">one</div>
<div class = "two">two</div>
</html>
<script>
$(".one").click(function() {
$(this).removeClass("one").addClass("two");
console.log("one");
})
$(".two").click(function() {
console.log("two");
})
</script>
を、セレクタが有効でなくなった(クラスがあるとして、今2ではなく1の)。ただし、イベントはこの要素にバインドされています。この要素はすでにバインドされているため、 ".two"ハンドラも起動しません。
最初のクリックでハンドラをアンバインドしてから、後で再バインドする最も簡単な方法は何ですか?
をより網羅的な説明を見つけることができます..あなたは、このメソッドが機能する理由として、簡単な説明を与えることができますか? – Ash
これは*ライブバインディング*であり、変更された要素や新しい要素に対しても機能します。これは静的な要素バインディングの方がダイナミックなので、繰り返しバインドする必要があります。 @灰 – eisbehr