想寫個循環測試一下onmouseout,onmouseover,下面是具體代碼。下面這段代碼不能正常執行var yy = document.getElementsByClassName("div_inTop_001");
for (var i = 0; i < yy.length; i++) {
yy[i].addEventListener("mouseover", myfunction0000);
yy[i].addEventListener("mouseout", myfunction0001);
function myfunction0000(){
yy[i].style.backgroundColor="#A52A2A";
console.log(i);
}
function myfunction0001(){
yy[i].style.backgroundColor="#5B5B5B";
console.log(i);
}
}錯誤提示:開發工具(idea)提示:mutable variable is accessible from closure瀏覽器報錯提示:可以正確執行的代碼:var yy = document.getElementsByClassName("div_inTop_001");
for (var i = 0; i < yy.length; i++) {
yy[i].addEventListener("mouseover", myfunction0000);
yy[i].addEventListener("mouseout", myfunction0001);
function myfunction0000(){
this.style.backgroundColor="#A52A2A";
console.log(i);
}
function myfunction0001(){
this.style.backgroundColor="#5B5B5B";
console.log(i);
}
}我想知道為什么上面的那一段代碼不能運行?下面那段代碼為什么能運行yy.length=5
JavaScript代碼閉包的問題,錯誤提示:mutable variable is .....
躍然一笑
2018-07-15 13:26:39