でイベントを削除は、私はこれを持ってjQueryのまたはJavaScript
$(function(){
//remove keydown doSomething1
$("body").keydown(doSomething2);
});
コメントに何を行うには?私の現在のコードでは、doSomething1とdoSomething2の両方が呼び出されます。私は必要としないものを無効にしたい。 jQueryを使ってイベントリスナーを削除するには
でイベントを削除は、私はこれを持ってjQueryのまたはJavaScript
$(function(){
//remove keydown doSomething1
$("body").keydown(doSomething2);
});
コメントに何を行うには?私の現在のコードでは、doSomething1とdoSomething2の両方が呼び出されます。私は必要としないものを無効にしたい。 jQueryを使ってイベントリスナーを削除するには
、あなたは.off()
を使用することができます。
$("body").off("keydown", doSomething2);
keydown
methodが.on("keydown", ...)
のためだけのショートカットです覚えておいてください。
しかし、それらを無効にするには、現在選択されているビューに基づいて異なるものを実行するハンドラを1つだけ持たせるか、両方をバインドして、それぞれ正しいビューが現在選択されているかをチェックする。 doSomething2
が関数リファレンスある場合
、あなたはjQueryのバインドイベントハンドラを削除するには.off()
(jQueryの1.7以降)または.unbind()
を使用することができます。
$('body').off('keydown', doSomething2);
// or
$('body').unbind('keydown', doSomething2);
なお、実行順序が要因となります。イベントハンドラのバインドを解除するコードが最初に実行された場合、効果はありません。一般に、jQueryイベントハンドラはバインドされた順にトリガされるため、質問の最初のコードスニペットが最初に実行された場合、この方法は機能しません(並べ替える必要があります)。
はjQueryのを使用して以下のようにこれを試してみてください。
$(function(){
// this would remove keydown from body
$("body").unbind('keydown', doSomething2);
});
私は、イベントハンドラをおくことをお勧めしますし、キーが押されたときに行うのですか何告げる変数を追加します。 –