私の問題を説明しようとします。私はmouseup
イベントリスナーを使用しているので、クリックが実行され、ターゲットが希望の要素でないときはいつでもチェックすることができます。ここに来てjQuery - 要素 "document"のリスナーの登録/登録解除
$(document).off("mouseup");
:あなたが見ることができるように、イベントリスナーがなりグローバルドキュメント要素とリスナーをバインド解除する方法にバインドされている
function clickOutListener(element, callbackFunction){
$(document).mouseup(function(e){
if(!$(element).is(e.target) && $(element).has(e.target).length === 0) callbackFunction.call(this, null);
});
}
:これは私が使用しているコードです。達成する必要があるものmouseup
リスナーをアンバインドすると、このリスナーを使用する他の要素(ドロップダウンやその他の機能)に影響します。私は、リスナーを登録するたびに、前に定義されたリスナーをオーバーライドするのではなく、定義されたターゲット関数を追加することを推測しなければなりません。
同じリスナーの異なる定義済みのターゲット関数には、どうすればアクセスできますか?
$(document).mouseup(funct1);
$(document).mouseup(funct2);
$(document).mouseup(funct3);
「funct2」の登録済みリスナーを登録解除するにはどうすればよいですか?
ありがとうございます。
jQueryを使用しているのを見て、イベントの名前空間を確認してください。これは、https://api.jquery.com/event.namespace/に役立ちます。 – Nope