/ / Mootools Class to Jquery - javascript, jquery, class, oop, mootools

Mootools Клас на Jquery - javascript, jquery, class, oop, mootools

Преобразувам клас на mootools в 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(){

}
})

Проблемът ми е как да обвържа функцията за добавяне към btnAdd. Кодът ми не работи, защото елементът "това" се променя. И аз не знам как да преобразувам функцията bindWithEvent в jquery.

Всяко решение?

Благодаря предварително

Отговори:

1 за отговор № 1

Доколкото знам, 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();

Така че, за да отговорите на вашия въпрос: Това, което всъщност трябва да направите, е да запазите препратка към "оригинала това"