我是一个初学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