我是一個初學javascript的人,我想不出解決以下問題的方法。我在這個例子中使用Mootools的,雖然這不是一個MooTools的問題:在運行時將變量更改爲文字?
for (var i = 0; i < 5; i++) {
myElement[i].addEvent('click', function() { otherFunction(i); });
}
每當有人點擊myElement,otherFunction被稱爲(好),但經過5(不好)。我知道這是因爲它acesses我在循環結束後(當他們點擊的元素),但我不能爲認爲任何替代的除了單調
switch(i) {
case 1: myElement[i].addEvent('click', function() { otherFunction(1); }); break;
case 2: myElement[i].addEvent('click', function() { otherFunction(2); }); break;
// ...
}
那裏的生活一定是一個更好的辦法......我覺得我失去了一些東西明顯
UPDATE:到myElement添加[I]指數(哎呀)
感謝, 卡梅倫
爲什麼你需要五個點擊處理程序的一個元素?據我所知,這兩個代碼塊將實現不同的目標,這些目標並不明確。 – montrealist 2009-02-16 15:36:40