0

私は次のようにいくつかのイベントをバインドしました:

$('#window-overlay').on('click', overlayClickHandler);
$clickedObj.on('click', overlayClickHandler);

これらのいずれかをクリックすると、クリックイベントが他のものから削除される簡単な方法はありますか? それを削除するの#window-overlayは簡単ですが、$clickedObj はifブロック内の変数であるため、後でハンドラーがバインドされたオブジェクトを特定するのが難しい場合があります。

4

1 に答える 1

1

イベントをアンバインドしたいjqueryオブジェクトの配列を維持し、条件に基づいて、配列を調べて必要なものをアンバインドできます...配列値としてきちんとしたjson構造を使用して、さまざまなバインドされたイベント..のようなもの

{
eventType: "click",
category: "myCategory1",
object: jqueryObject //or store the  selector if you want to keep a low memory footprint..
}

カテゴリは基本的に関連するイベントをグループ化するために使用されるため、必要なものだけをバインド解除できます。

より簡単な代替手段があるかどうかはわかりませんが、これは 1 つのアプローチです。少なくとも、イベントがバインドされているすべてのコントロールを見つけるよりは優れています。

于 2012-05-23T20:03:13.420 に答える