Я пытаюсь зарегистрировать анонимную функцию, когда пользователь щелкает ячейку в таблице HTML. Вот часть сырого, чистого кода:
document.getElementById(
"course"+displayed_year_index+occurrences_indices[displayed_year_index]).onclick =
eval("function() {PrintReceipt("+result.years[result_year_index].rul_code+");};");
Обратите внимание на использование eval
, так как это находится в цикле, а анонимная функция каждый раз отличается.
Достаточно сказать, что это работает абсолютно нормально в Firefox 2. Но Firefox 3 выдает «Синтаксическую ошибку», указывая в квадратных скобках после слова «функция».
У кого-нибудь есть умные идеи о том, как я могу это исправить?
Просто чтобы было совершенно ясно, что я пытаюсь сделать, вот очень упрощенный пример:
for (index=0; index<4; index++) {
document.getElementById("div"+index).onclick =
eval("function () {Foo(index);};");
}
Другими словами, я хочу запускать одну и ту же функцию с другим значением параметра для каждого div
.