我目前正在研究这个问题:
以下是示例:FIDDLE
它无法工作,在我检查了控制台之后,它可能会告诉我:
inner.onclick=function(){ add(outer[i]) };
无法将当前out元素的对象正确传递给函数:
function add(objectIn){
}
你能告诉我如何在递归中将元素传递给函数吗?以及如何修改我当前的代码以使其正常运行?
非常感谢!
答案 0 :(得分:0)
这是common problem is JavaScript。
当您绑定onclick事件时,您没有使用i
的当前值,而是在点击发生时,使用i
的最后一个值。
所以你必须这样做:
inner.onclick= (function(i){ return function(){ add(outer[i]) })(i);
答案 1 :(得分:0)
您可以创建一个像Darhazer建议的新闭包,或者如果您不介意使用jQuery,则可以使用jQuery.proxy():
inner.onclick = $.proxy(add, window, outer[i]);