有兩個版本,據說當用戶單擊第一個鏈接,它會提醒「1」,第二個環節,「2」等:爲什麼一個JavaScript關閉工作,另一個不工作?
版本1:
<a href="#" id="link1">click me</a>
<a href="#" id="link2">click me</a>
<a href="#" id="link3">click me</a>
<a href="#" id="link4">click me</a>
<a href="#" id="link5">click me</a>
<script type="text/javascript">
for (i = 1; i <= 5; i++) {
document.getElementById('link' + i).onclick = (function() {
return function() {
var n = i;
alert(n);
return false;
}
})();
}
</script>
版本2:
<a href="#" id="link1">click me</a>
<a href="#" id="link2">click me</a>
<a href="#" id="link3">click me</a>
<a href="#" id="link4">click me</a>
<a href="#" id="link5">click me</a>
<script type="text/javascript">
for (i = 1; i <= 5; i++) {
document.getElementById('link' + i).onclick = (function() {
var n = i;
return function() {
alert(n);
return false;
}
})();
}
</script>
版本1不起作用。版本2將。我想我知道爲什麼,但想與其他人解釋爲什麼版本1不起作用。
從看第1版,並沒有做它的'i'太每一次一個新的副本? – 2010-07-27 13:13:54
不是。在版本1中,迭代foreach時不復制。但點擊時它會複製。 – 2010-07-27 19:37:26