私は、単純なHTMLマークアップを持っている:要素の新しいhtmlを設定すると、イベントハンドラを保存する方法は?
<div id="cont">Some text here
<div class="wrap" style="border: 1px solid black;display: inline;"> block element here
</div> and another text</div>
とjQueryコード:
$(function(){
$(".wrap").click(function(){
$("#cont").html($("#cont").html().replace(/text/g, "letter"));
alert("Click!");
});
$("#d1").click(function(){
alert("#d1 clicked!");
});
});
私はそのクリックイベントは、あなたが#d1
div要素によってクリックされた任意の時間を発射することを期待し、我々は.wrapによってクリックされたときそれはもう一度火を消す。なぜそれがそのような振る舞いを持っているのか理解していますが、それをどう解決するのですか
$("#cont").html($("#cont").html().replace(/text/g, "letter"))
の後に私のコードで#d1
のクリックイベントを設定することができません。なぜなら、イベントが設定されていれば実行時にはいないからです。
例を試すことができますlive()は非常に便利な機能です。live()は非常に便利な機能です。live()は非常に便利な機能です。live()
.live()と.one()イベントセッターを組み合わせることは可能ですか? .live()を使用してイベントハンドラを設定したいが、一度だけ起動する必要がある。 – Kai
@Kaiハンドラ関数の最後に '$(this).die( 'click')'を入れることはできません。 –
ここで@Nick Craverの素晴らしい解決策を見つけました - http://stackoverflow.com/questions/3796207/using-one-with-live-jquery – Kai