私は JavaScript の初心者で、次の問題を回避する方法が思いつきません。この例では Mootools を使用していますが、これは Mootools に関する質問ではありません。
for (var i = 0; i < 5; i++) {
myElement[i].addEvent('click', function () { otherFunction(i); });
}
誰かが myElement をクリックするたびに、otherFunction が呼び出されます (良い) が、5 が渡されます (悪い)。これは、ループが終了した後(要素をクリックしたとき)にアクセスするためであることはわかっていますが、単調なものを除いて、一生考えることはできません
switch(i) {
case 1: myElement[i].addEvent('click', function () { otherFunction(1); }); break;
case 2: myElement[i].addEvent('click', function () { otherFunction(2); }); break;
// ...
}
もっと良い方法があるに違いない...明らかな何かが欠けている気がする
更新: myElement に [i] インデックスを追加しました (おっと)
ありがとう、キャメロン