Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有子标记的Javascript单击按钮事件_Javascript_Mouseevent_Addeventlistener_Event Delegation - Fatal编程技术网

带有子标记的Javascript单击按钮事件

带有子标记的Javascript单击按钮事件,javascript,mouseevent,addeventlistener,event-delegation,Javascript,Mouseevent,Addeventlistener,Event Delegation,尝试在不使用jQuery的情况下理解事件委派。我在容器div上设置了事件侦听器单击。我想将单击限制为容器内的按钮。问题是当按钮包含标记时,目标是按钮中的元素,而不是按钮本身。我认为该事件会使DOM冒泡,并在按钮上触发mouseEvent。事实似乎并非如此。想知道为什么或者我错过了什么?我已经看到了这个工作的演示,但似乎无法复制它 constclickhandler=e=>{ 控制台日志(e); 如果(!e.target.matches('button'))返回 log('单击按钮!'); }

尝试在不使用jQuery的情况下理解事件委派。我在容器div上设置了事件侦听器
单击
。我想将
单击
限制为容器内的
按钮。问题是当
按钮
包含标记时,目标是
按钮
中的元素,而不是
按钮
本身。我认为该事件会使DOM冒泡,并在
按钮上触发
mouseEvent
。事实似乎并非如此。想知道为什么或者我错过了什么?我已经看到了这个工作的演示,但似乎无法复制它

constclickhandler=e=>{
控制台日志(e);
如果(!e.target.matches('button'))返回
log('单击按钮!');
}
const container=document.querySelector('.js container');
container.addEventListener('click',clickHandler)

登录
接近

警告:我尝试运行上述代码,当我单击容器时,它挂起了我的浏览器。嗯,我认为挂起来自Stack Snippet尝试记录事件时的控制台模拟器。它最终结束了。