【发布时间】:2021-08-23 15:33:45
【问题描述】:
我正在尝试应用事件委托,因此我想在 li 元素内单击时更新文本,但是当我在元素内单击时,它不会触发。我不想将事件侦听器直接附加到 li,因为列表可以更新,并且 li 中可以有任何元素类型。
const menu = document.querySelector('.menu');
const textField = document.querySelector('p');
menu.addEventListener('click', e => {
if (e.target.matches('li')) {
textField.textContent = e.target.textContent;
}
});
li {
padding: 1em;
border: 1px solid red;
}
a {
border: 1px solid blue;
}
<div class="menu">
<ul>
<li><a>Home</a></li>
<li><a>Gallery</a></li>
<li><a>About us</a></li>
</ul>
<p></p>
</div>
【问题讨论】:
标签: javascript dom-events event-delegation