Я пытаюсь зарегистрировать анонимную функцию, когда пользователь щелкает ячейку в таблице 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
.