【发布时间】:2018-12-25 05:35:27
【问题描述】:
如何将此代码转换为事件委托?
这是 HTML 代码
<ul id="todo-app">
<li class="item">Walk the dog</li>
<li class="item">Pay bills</li>
<li class="item">Make dinner</li>
<li class="item">Code for one hour</li>
</ul>
Javascript 代码
document.addEventListener('DOMContentLoaded', function() {
let app = document.getElementById('todo-app');
let items = app.getElementsByClassName('item');
// attach event listener to each item
for (let item of items) {
item.addEventListener('click', function() {
alert('you clicked on item: ' + item.innerHTML);
});
}
});
上述代码在技术上是可行的,但问题在于,将事件侦听器分别附加到每个项目。 使用上面的代码应用程序最终可能会产生数百个事件侦听器,更有效的解决方案是将一个事件侦听器实际附加到整个容器,然后在实际单击时访问每个项目。
那么,如何使用事件委托制作这段代码?
【问题讨论】:
标签: javascript