带有子标记的Javascript单击按钮事件
尝试在不使用jQuery的情况下理解事件委派。我在容器div上设置了事件侦听器带有子标记的Javascript单击按钮事件,javascript,mouseevent,addeventlistener,event-delegation,Javascript,Mouseevent,Addeventlistener,Event Delegation,尝试在不使用jQuery的情况下理解事件委派。我在容器div上设置了事件侦听器单击。我想将单击限制为容器内的按钮。问题是当按钮包含标记时,目标是按钮中的元素,而不是按钮本身。我认为该事件会使DOM冒泡,并在按钮上触发mouseEvent。事实似乎并非如此。想知道为什么或者我错过了什么?我已经看到了这个工作的演示,但似乎无法复制它 constclickhandler=e=>{ 控制台日志(e); 如果(!e.target.matches('button'))返回 log('单击按钮!'); }
单击
。我想将单击
限制为容器内的按钮。问题是当按钮
包含标记时,目标是按钮
中的元素,而不是按钮
本身。我认为该事件会使DOM冒泡,并在按钮上触发mouseEvent
。事实似乎并非如此。想知道为什么或者我错过了什么?我已经看到了这个工作的演示,但似乎无法复制它
constclickhandler=e=>{
控制台日志(e);
如果(!e.target.matches('button'))返回
log('单击按钮!');
}
const container=document.querySelector('.js container');
container.addEventListener('click',clickHandler)代码>
登录
接近
警告:我尝试运行上述代码,当我单击容器时,它挂起了我的浏览器。嗯,我认为挂起来自Stack Snippet尝试记录事件时的控制台模拟器。它最终结束了。