如何i在我的for循环中保持对变量的访问?我正在努力学习,而不仅仅是得到答案,所以一些解释会非常有帮助.谢谢!
var el,
len = statesPolyStrings.length;
for (var i = 0; i < len; i++) {
el = document.getElementById(statesPolyStrings[i]);
google.maps.event.addDomListener(el, 'mouseover', function() {
$("#"+statesPolyStrings[i]).addClass("highlight");
statesPolyObjects[i].setOptions({ strokeWeight: '2' });
});
}
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 29
您的所有回调都共享相同的i变量.
当事件处理程序实际运行时,i是在数组结束之后.
您需要将循环体包装在一个自动调用函数中,该函数i作为参数.
这样,每次迭代都将获得自己的,不变的i变量.
例如:
for (var i = 0; i < statesPolyStrings.length; i++) {
(function(i) {
...
})(i);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7597 次 |
| 最近记录: |