Javascript コードを記述するためにモジュラー パターンを使用していますが、とても楽しいものです。しかし、私はある状況で非常にひどく立ち往生しています。
私の名前空間は次のとおりです。
var settings, handlers, objects,
Namespace = {
handlers: {
//All event handlers go here
},
objects: {
//All jquery button references go here
},
init: function(){
//Initial stuff
}
};
//Call init with the Namespace
mousedown
1つのオブジェクト (div)のイベントに対して 2 つの異なるハンドラーを切り替えるボタンがあり、ハンドラーはhandlers
オブジェクトのプロパティです。では、 1init
つのハンドラーが自動的on
に div になり、正常に動作します。トグル ボタンをクリックすると、最初のハンドラーをオフにして、もう一方のハンドラーをオンにしようとしていますが、機能していません。
on
最初のmousedown
イベント ハンドラー (またはすべてのハンドラー) を次のように変更します。
Namespace.objects.someObject.on('mousedown', Namespace.handlers.mouseDownHandlerOne);
これはうまくいきます。このように回そうとするとoff
:
Namespace.objects.someObject.off('mousedown', Namespace.handlers.mouseDownHandlerOne);
うまくいきません!エラーや警告はありません。ハンドラー名を渡さずにoff
withを使用すると、機能します。mousedown
しかし、2 つの異なるハンドラーを分離する必要があります。
モジュラーjs環境でどのように行うべきですか?