我需要的mootools這個代碼隱蔽的1.2至1.3bindWithEvent mootools的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 [i] .addEvent`應該是`el.addEvent`,否則,100%的錢 - 我沒有看到您的編輯,然後我開始做我的答案:(刪除很快 – 2010-11-23 21:11:57