Сообщение от dmitry111
|
Хотел полностью отделить DOM от кода, вроде получилось.
|
// Инициализация
App.prototype.init = function () {
var self = this;
this.switchArr[this.activeDisc].className = "active";
this.updateData(this.switchArr[this.activeDisc].value);
App.utils.addEvent(this.itemsBox, "mousedown", function (e) {
self.filterEvent(e);
}, false);
не получилось, сэр. даже совсем.
сделай класс, который будет оперировать только данными - никаких элементов, и даже классов. никакого намёка на DOM.
DOM замешивай либо в дочернем классе, либо в обработчиков событий.
ООП - это во многом событийное программирование
т.е. не должно быть таких методов :
// Показывает ошибку при заполнении формы
App.prototype.formValidate.showError = /* DOM SHOW BLA BLA BLA */
а он должен быть заменен на микшированный EventEmitter (из Node.js ... поищи, довольно удобная штука), или любой другой класс, описывающий паттерн "подписчик".
тогда у тебя будет такая вещь:
// мне пофигу на ошибки в форме.
/* ничего нет! */
// я хочу выводить ошибки алертом, как в суровых 00
myForm.on("inputerror", function (e) {
if (e instanceof window["Криворукий пользователь"]) {
alert(e.message);
}
});