我有这个代码。出于某种原因,第一个console.log在控制台中打印出来但是当我点击时第二个给我一个未定义的。 cvs数组是全局的。 谢谢你的帮助
var losotro = ['div.santiago', 'div.karina', 'div.roman', 'div.marcos'];
var cvs = ['div#cv0 p', 'div#cv1 p', 'div#cv2 p', 'div#cv3 p'];
for (i = 0; i < losotro.length; i++) {
console.log(cvs[i]);
jQuery(losotro[i]).click(function(){
console.log(cvs[i]);
});
}
答案 0 :(得分:0)
这是JavaScript中的典型闭包问题。
基本上,所有回调(click事件处理程序)都引用相同的变量i
(我知道,这对我来说也很奇怪),在循环结束时应该是{ {1}}。和
绝对这超出了losotro.length
数组的索引范围。
您可能想要检查JavaScript中的闭包是如何工作的。但对于当前的问题,你可以这样做。
losotro