当用户单击 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
。