Я немного начинаю с javascript, и я не могу придумать пути вокруг следующей проблемы. Я использую Mootools в этом примере, хотя это не Mootools вопрос:Изменить переменную на литерал во время выполнения?
for (var i = 0; i < 5; i++) {
myElement[i].addEvent('click', function() { otherFunction(i); });
}
Всякий раз, когда кто-то нажимает на MyElement, otherFunction называется (хорошо), но прошло 5 (плохо). Я знаю, что это потому, что acesses I после завершения цикла (при нажатии на элемент), но я не могу за жизнь думать о какой-либо альтернативы для монотонной
switch(i) {
case 1: myElement[i].addEvent('click', function() { otherFunction(1); }); break;
case 2: myElement[i].addEvent('click', function() { otherFunction(2); }); break;
// ...
}
кроме Там должен быть лучший путь ... Я чувствую, что я пропускаю что-то очевидное
UPDATE: Добавлено [я] индекс к MyElement (ой)
Спасибо, Кэмерон
Зачем вам нужно пять обработчиков щелчков на одном элементе? Насколько я вижу, два блока кода достигают разных целей, которые на самом деле не ясны. – montrealist