【发布时间】:2017-03-29 14:58:56
【问题描述】:
我正在尝试像这样构建和学习本机 javascript event delegation(虽然不确定)
function clicked(d) {
d.innerText = "clicked";
}
document.addEventListener('click', function() {
var foos = Array.from(document.getElementsByClassName('foo'));
foos.forEach(function(elm, i) {
elm.addEventListener('click', function() {
clicked(elm);
});
});
})
document.body.innerHTML = `<div class="foo"></div><div class="foo"></div><div class="foo"></div><div class="foo"></div>`;
.foo {
height: 100px;
width: 100px;
float: left;
border: 1px solid green;
}
为什么只有在第二次点击前进后才能工作?
我可以使用 jQuery on 方法更改上面的 addEventListener 代码块以使其正常工作,但我只想知道如何使上面的代码表现得类似。
【问题讨论】:
标签: javascript events delegation