這是如何超級討厭的? http://jsfiddle.net/b3xyx/Javascript for-loop放置一個指針而不是鏈接指定變量的副本
- 我使用addEventListener爲每個鏈接分配一個javascript函數。
- 貫穿於各個環節的循環迭代,分配一個遞增變量x
- 但實際上,當你點擊的鏈接 - 而不是提醒x的值,它會提醒x的最後值;即它剛分配了一個指向x的指針而不是複製它。
點擊此處查看:http://jsfiddle.net/b3xyx/點擊任何鏈接將提醒「4」。格兒。
function goToSite(where){ alert("This would take you to " + where + ".com") } for(var x=1; x<=3; x++){ document.getElementById('link'+x).addEventListener('click', function(){goToSite(x)}) }
我如何解決此問題?有沒有辦法在這種情況下創建一個變量的真實副本?
編輯:謝謝你建議duplicate,但它似乎並不重複。
^我的更新代碼:
function goToSite(whichOne){
return function(){
alert("This would take you to " + whichOne + ".com");
}
}
還不行。
查找「JavaScript關閉」 – 2013-02-10 22:38:39
goToSite中的參數需要更改爲x或者警報中的x需要更改爲其中的位置。 – 2013-02-10 22:51:16
感謝店面 - 現在改變了。問題依然存在。 – LittleBobbyTables 2013-02-10 23:15:08