1

Jquery プラグイン klass を使用していますが、使用に問題があります... :/

メソッドを持つクラスがありますが、イベント (クリックなど) をキャッチし、オブジェクトからメソッドを呼び出したい場合、それを行うメソッドは 2 つしか見つかりませんでした。

問題:

test = $.klass({
    init: function () {
        console.log('CM');
    },

    action: function () {
        $('.test').on('click', function () {
            // Call test method
        });
    },
    test: function () {
        console.log('test');
    }
})

解決策 1 : 「This」のようなデータを入れる

test = $.klass({
    init: function () {
        console.log('CM');
    },

    action: function () {
        $('.test').on('click', { context: this }, function (event) {
            event.data.context.test();
        });
    },
    test: function () {
        console.log('test');
    }
})

解決策 2 : これを「グローバル」に取得する

test = $.klass({
    init: function () {
        console.log('CM');
    },

    action: function () {
        var that = this;
        $('.test').on('click', function (event) {
           that.test();
        });
    },
    test: function () {
        console.log('test');
    }
})

私はグローバル変数が好きではないので、2番目の解決策は好きではありませんが、最初の解決策が優れているかどうかはわかりません...

最良のものを選択するのを手伝ってもらえますか、それとも私にとって他の解決策があるかもしれません:)

ありがとう

4

0 に答える 0