我使用 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');
}
})
我不喜欢第二种解决方案,因为我不喜欢全局变量,但我不知道第一种是否更好......
你能帮我选择最好的吗,或者你可以为我提供其他解决方案:)
谢谢