我想使用下面的模式将事件侦听器添加到一组按钮。在下面的代码中,我希望点击a
按钮将a
打印到控制台,但会打印c
。 b
也是如此。看起来有某种范围问题,似乎某种关闭可以解决问题,但我无法弄清楚如何做到正确。
var buttons = {
a: document.getElementById('a'),
b: document.getElementById('b'),
c: document.getElementById('c')
}
for (var key in buttons) {
buttons[key].addEventListener('click', function() {
console.log(key);
});
}
<button id="a">a</button>
<button id="b">b</button>
<button id="c">c</button>