有个未采纳的「潇潇雨歇」的答案,也有用,只是我现在还不知道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)
我想大声告诉你2017-05-18 10:52:01
<button id='myButton1' data-info='abc'></button> 点击按钮后,获得button的属性data-info中的属性
过去多啦不再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)
})
}
}