Mootools Class 到 Jquery
Mootools Class to Jquery
我正在将 mootools class 转换为 Jquery,但我现在遇到了问题。
我有以下代码 (mootools)
var ListaItens = new Class({
...
...
initialize: function(element){
....
this.btnAdd = this.tabela.getElement('.add_linha button');
if(this.btnAdd){
this.btnAdd.addEvent('click', this.addLinha.bindWithEvent(this));
this.checkAdd();
}
...
},
addLinha: function(){
}
});
现在 Jquery 我有这个
var ListaItens = function(element, maxLinhas){
...
this.btnAdd = this.tabela.find('.add_linha button')[0];
if(this.btnAdd){
//$(this.btnAdd).proxy('click', this.addLinha);
$(this.btnAdd).on("click", this.addLinha);
this.checkAdd;
}
...
this.addLinha = function(){
}
})
我的问题是如何将 addline 函数绑定到 btnAdd。我的代码不起作用,因为元素 'this' 发生了变化。而且我不知道如何将函数 bindWithEvent 转换为 jquery.
有什么解决办法吗?
提前致谢
据我所知,jQuery 不提供与 mootools 类似的 类 概念,因此您可以做的一件事是使用 »经典 JS 方法« 创建 类 像这样:
function ListaItens () {
var that = this;
this.tabela = $(…);
this.btnAdd = this.tabela.find(…);
if (this.btnAdd) {
this.this.btnAdd.on('click', function (e) {
that.addLinha();
})
}
}
ListaItens.prototype.addLinha = function () {
}
var instance = new ListaItens();
因此,要回答您的问题:您基本上需要做的是保留对 »original this«
的引用
我正在将 mootools class 转换为 Jquery,但我现在遇到了问题。
我有以下代码 (mootools)
var ListaItens = new Class({
...
...
initialize: function(element){
....
this.btnAdd = this.tabela.getElement('.add_linha button');
if(this.btnAdd){
this.btnAdd.addEvent('click', this.addLinha.bindWithEvent(this));
this.checkAdd();
}
...
},
addLinha: function(){
}
});
现在 Jquery 我有这个
var ListaItens = function(element, maxLinhas){
...
this.btnAdd = this.tabela.find('.add_linha button')[0];
if(this.btnAdd){
//$(this.btnAdd).proxy('click', this.addLinha);
$(this.btnAdd).on("click", this.addLinha);
this.checkAdd;
}
...
this.addLinha = function(){
}
})
我的问题是如何将 addline 函数绑定到 btnAdd。我的代码不起作用,因为元素 'this' 发生了变化。而且我不知道如何将函数 bindWithEvent 转换为 jquery.
有什么解决办法吗?
提前致谢
据我所知,jQuery 不提供与 mootools 类似的 类 概念,因此您可以做的一件事是使用 »经典 JS 方法« 创建 类 像这样:
function ListaItens () {
var that = this;
this.tabela = $(…);
this.btnAdd = this.tabela.find(…);
if (this.btnAdd) {
this.this.btnAdd.on('click', function (e) {
that.addLinha();
})
}
}
ListaItens.prototype.addLinha = function () {
}
var instance = new ListaItens();
因此,要回答您的问题:您基本上需要做的是保留对 »original this«
的引用