【发布时间】:2012-12-29 02:08:54
【问题描述】:
我在一段 Javascript 代码中有一个列表项数组。我想为每个事件分配一个 onclick 事件处理程序。每个处理程序将是相同的函数,但具有不同的输入参数。现在我有:
function contentfill(i) {
box = document.getElementById("text");
box.style.background="rgba(0,0,0,0.8)";
var content = new Array();
contentdivs = document.querySelectorAll("#contentfill>div");
box.innerHTML = contentdivs[i].innerHTML;
}
li[3].onclick = function() {contentfill(0);};
li[4].onclick = function() {contentfill(1);};
li[5].onclick = function() {contentfill(2);};
这很好用,但我想用循环实现同样的事情,例如:
for(i=3;i<=5;i++) {
j=i-3;
li[i].onclick = function() {contentfill(j);};
}
但是,这不起作用。由于 j 似乎在循环结束时被定义为 2,所以每次点击时,似乎只调用了 contentfill(2)。
【问题讨论】:
标签: javascript function loops arguments