2

jQuery unbind()をlive()で使用できますか

例えば

$(".content_media").unbind("touchstart").live("touchstart",function(){....});

はいの場合、それは正確にはどういう意味ですか?基本的に、バインド解除の意味を理解したい

ドキュメントの要素をバインドするページがあります...そしてその間に同じ要素を書き換えるAJAXカルルがあります...今ではそれらが常に同じように動作することを期待しています..それが私がライブを使用した理由です()

ここでlive()バインディングが機能しない例外が発生する可能性がある場合は、修正してください。

4

5 に答える 5

0

バインド解除とは、一連の要素からイベントハンドラーを削除することを意味します。一部のイベントハンドラーのみを削除できます

$(".content_media").unbind("click");
//it means delete all click handlers on elements with class content_media

またはすべてのイベントハンドラー

$(".content_media").unbind()
//it means delete all handlers on elements with class content_media

バインドを解除した後、新しいライブイベントをバインドできます。live()での注意はこれです(ドキュメントから取得)

.live()メソッドはデフォルトでイベントハンドラーをドキュメントにバインドするため、ドキュメントで.unbind()を呼び出すと、.live()によってバインドされたハンドラーもバインド解除されます。たとえば、$(document).unbind('click'); $(document).bind('click'、fn1)だけでなく、$('a.foo')。live('click'、fn2)も削除します。

于 2011-07-27T09:50:27.213 に答える
0

バインドを解除するとは、以前に要素にアタッチしたイベントハンドラーを削除することを意味します。

以前にアタッチされたイベントハンドラーを要素から削除します。

ただし、動作が異なるためunbind、で追加されたイベントハンドラーを削除するために使用することはできません(イベントハンドラーをドキュメントルートにアタッチします)。livelive

それ.die()が目的です:

以前に.live()を使用してアタッチされたすべてのイベントハンドラーを要素から削除します。

于 2011-07-27T09:52:36.190 に答える
0

ここでバインドを解除するためのポイントがわかりません。

$(".content_media").unbind("touchstart").live("touchstart",function(){....});

ええと、もしあなたが機能fn1を持っていて、それを持っているなら、

$(".content_media").live("touchstart",fn1);

それからある時点で、あなたは好きなように使わfn2ずに使いたいですfn1

$(".content_media").live("touchstart",fn2);

次に、最初にunbindを呼び出して...削除しますfn1

$(".content_media").unbind("touchstart").live("touchstart",fn2);

ただし、必要な場合fn1は、実際にunbindを使用する必要はありません...

編集

あなたがそれをしている理由のためにあなたがこのラインを呼んでいるからなら、

$(".content_media").unbind("touchstart").live("touchstart",function(){....});

すべてのajax実行で...それはそれを正当化します...しかしあなたはそれを間違った方法でやっています...

バインドを解除せずにajax実行の外に置くだけで、準備完了です...

$(".content_media").live("touchstart",function(){....});
于 2011-07-27T09:53:31.237 に答える
0

unbind()はい、図のようにDoclive()Docを併用できます。

このコード:

$(".content_media").unbind("touchstart").live("touchstart",function(){...

jQueryを介して設定されたtouchstartイベントリスナーのバインドを解除してから、現在のノードと将来のノードのリスナーをクラスで作成します。bind()touchstartcontent_media

リスナーの設定を停止するには、 Doclive()を使用する必要があることに注意してください。die()

また、jQueryの外部に設定されたリスナーは、これらの手段の影響を常に受け​​るとは限りません。

于 2011-07-27T09:54:12.500 に答える
0

live()との違いbind()は、ライブイベントがドキュメントにバブルされ、jQueryによって処理され、イベントを発生させた要素をチェックすることです。したがって、すでにライブを呼び出した後でセレクターに一致する要素をさらに追加すると、それらはすべてイベントを発生させます。

Bind()ただし、要素固有であり、すべての新しい要素を手動でバインドする必要があります。最初にいくつかの要素をバインドしてさらに追加する場合(バインドセレクターと一致する場合でも)、それらを再度バインドする必要があるという意味で(ただし、元の要素をダブルバインドしないように注意してください)。

Unbind()bind()、何die()live()。バインドを解除できるのは、で設定されているイベントのみであり、で設定されているイベントbind()のみです。また、bindで追加されたイベントとは異なり、ライブイベントの伝播を停止することはできません。die()live()

于 2011-07-27T09:54:41.677 に答える