2

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

mousedown1つのオブジェクト (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);

うまくいきません!エラーや警告はありません。ハンドラー名を渡さずにoffwithを使用すると、機能します。mousedownしかし、2 つの異なるハンドラーを分離する必要があります。

モジュラーjs環境でどのように行うべきですか?

4

1 に答える 1

0

Jquery .off メソッドは最大 3 つの引数を取ることができます。次のコードを使用します。

Namespace.objects.someObject.off('mousedown', '**', Namespace.handlers.mouseDownHandlerOne);
于 2013-01-15T12:22:54.577 に答える