Мне нужно скрыть этот код с mootools 1.2 до 1.3
var SomeClass = new Class({
initialize: function (els) {
for (var i = 0; i < els.length; i++) {
els[i].addEvent('click',
this.alert.bindWithEvent(this, [i, els[i].get('text')])
);
}
},
alert: function (event, index, text) {
alert(
index + ' -> ' + text + ' | ' +
'x:' + event.page.x + ', y:' + event.page.y
);
}
});
Вот рабочая версия (1.2) http://jsfiddle.net/9Pn99/
Вот моя версия для 1.3 http //jsfiddle.net/9Pn99/1/
РЕДАКТИРОВАТЬ: Я понял, как это сделать, с закрытием. http://jsfiddle.net/9Pn99/4/
for (var i = 0; i < els.length; i++) {
(function (j) {
els[i].addEvent('click',
function (e) {
this.alert(e, j);
}.bind(this)
);
}.pass([i], this))();
}
Есть ли лучшее решение?
EDIT2: я нашел еще один простой способ:
els.each(function (el, i) {
els[i].addEvent('click',
function (e) {
this.alert(e, i);
}.bind(this)
);
}, this);
Похоже, я говорю один.
els[i].addEvent
должно быть простоel.addEvent
, в противном случае - 100% на деньги - я не видел вашего редактирования, прежде чем я решил сделать свой ответ :( удаление в ближайшее время. - person Dimitar Christoff   schedule 24.11.2010