有個未採納的「瀟瀟雨歇」的答案,也有用,只是我現在還不知道let的具體用法。在此表示歉意,我也好想採納兩個。
#結果肯定是
click button1 alert(3)
click button2 alert(3)
怎麼修改程式碼使得
click button1 alert(1)
click button2 alert(2)
感覺這個問題跟settimeout的閉包經典問題有點像,但是我又想不到什麼解決辦法。
求指點。
phpcn_u15822017-05-18 10:52:01
function myclick(i){
return function(){
alert(i)
}
第二個參數傳myclick(i)
过去多啦不再A梦2017-05-18 10:52:01
將var 改為 let 即可
window.onload = function () {
for (let i = 1; i < 3; i++) {
document.getElementById('myButton' + i)
.addEventListener('click', () => {
myClick(i)
})
}
}