我正在尝试将函数绑定到 Internet Explorer 7 中节点列表中的项目。
for(var j = 0; j < navLabels.length; j++)
{
navInsets[j].onmouseover = function(){showLabel(navLabels[j], true);};
navInsets[j].onmouseout = function(){showLabel(navLabels[j], false);};
navInsets[j].onclick = function(){selectNew(j);};
navLabels[j].onclick = function(){selectNew(j);};
}
showLabel() 和 selectNew() 都是我自己的函数。它们每个都需要传递一个索引,在本例中为 j。
我知道,在匿名函数中,j 最终会成为对 j 的引用,而不是 j 的值。我也知道我可以使用 addEventListener 或 bind 方法来执行此操作,但在 IE 7 中都不允许这样做。我什至知道 attachEvent 方法适用于 ie7,但由于我需要传递参数,所以我需要包装匿名函数中的函数使用 attachEvent (至少这似乎是真的),这是最初的问题。
关于这个主题的任何不太老套的想法?谢谢。