我分配的onclicks包含页面上链接的编号。这是我的代码:
var aTags = document.getElementsByTagName("a");
for (var t = 0; t < aTags.length; t++){
var aTag = aTags[t];
aTag.onclick = function(){setSubMenu(t);};
}
function setSubMenu(t){
console.log("t: " + t);
//The issue is t is always evaluating to the length of aTags
//instead of the current tag.
}
如何解决此问题?
最佳答案
将其包装在一个自动执行的闭包中:
for (var t = 0; t < aTags.length; t++)(function(t) {
var aTag = aTags[t];
aTag.onclick = function() { setSubMenu(t); };
})(t);
关于javascript - 如何阻止for循环中的变量被JavaScript中的引用传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13140571/