1

我使用 Jquery 插件 klass,但在使用它时遇到了一些问题......:/

我有一个带有方法的类,但是当我想从我的对象中捕获事件(如点击)和调用方法时,我发现只有两种方法可以做到这一点:

问题:

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');
    }
})

我不喜欢第二种解决方案,因为我不喜欢全局变量,但我不知道第一种是否更好......

你能帮我选择最好的吗,或者你可以为我提供其他解决方案:)

谢谢

4

0 回答 0