1

イベントをjQueryの要素にバインドする場合、バインド先とまったく同じ要素から常にバインドを解除する必要がありますか? 子または親からバインドを解除できますか? 私もイベント名前空間を使用しています - これは状況に関係がありますか?

<div id="id1">
    <div id="id2">
        <div id="id3">
            hello
        </div>
    </div>
</div>


$("#id2").bind("click.mynamespace", function() { alert("hi!");});
$("#id1").unbind("click.mynamespace"); //will this work?
$("#id3").unbind("click.mynamespace"); //will this work?

jQueryのドキュメントのどこにも言及されていないようです。

4

1 に答える 1

3

いいえ、それはイベントではないため、バブルしません。すべてのイベント関連関数は、jQuery オブジェクト内の要素に正確に作用します。

この動作が必要な場合は、すべての要素を選択するだけです。

// element and its children
$('#id1').find('*').andSelf().unbind('click.mynamespace');
// element and its parents
$('#id3').parents().andSelf().unbind('click.mynamespace');

補足として、.bind()and.unbind()は jQuery 1.7 の時点で非推奨になっています- 代わりに.on()andを使用すること.off()をお勧めします (あなたのケースでは同じ引数)。

于 2012-06-08T09:20:48.543 に答える