Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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_Dom Events - Fatal编程技术网

如果单击子节点,则不会激发JavaScript单击事件

如果单击子节点,则不会激发JavaScript单击事件,javascript,dom-events,Javascript,Dom Events,我正在处理一个无法使用jQuery的项目,我对单击事件有一个问题 我有一个带有图标和一些文本的链接,我想创建一个事件,当我单击该链接时,它会添加一个“选定”类。 问题是,当我单击一个子节点时,类被添加到其中,而不是链接 下面是一个例子: window.onload=function(){ var actions=document.queryselectoral(“.action”); actionClickHandler=函数(e){ e、 target.classList.add(“选定”)

我正在处理一个无法使用jQuery的项目,我对单击事件有一个问题

我有一个带有图标和一些文本的链接,我想创建一个事件,当我单击该链接时,它会添加一个“选定”类。 问题是,当我单击一个子节点时,类被添加到其中,而不是链接

下面是一个例子:

window.onload=function(){
var actions=document.queryselectoral(“.action”);
actionClickHandler=函数(e){
e、 target.classList.add(“选定”);
};
actions.forEach(函数(操作){
action.addEventListener(“单击”,actionClickHandler);
});
}
.action{
显示:内联块;
填充:10px 15px;
背景色:#eee;
边框:1px实心#ddd;
边界半径:8;
颜色:#666;
文字装饰:无;
}
.行动:悬停{
盒影:0px2p5pxRGBA(0,0,0,0.3);
边框颜色:#ccc;
}
.选定{
背景色:#fff;
}

使用
event.currentTarget
而不是
event.target

返回事件linstener附加到的DOM元素,而不是返回最内部的元素,即捕获事件的元素

window.onload=function(){
var actions=document.queryselectoral(“.action”);
actionClickHandler=函数(e){
e、 currentTarget.classList.add(“选定”);
};
actions.forEach(函数(操作){
action.addEventListener(“单击”,actionClickHandler);
});
}
.action{
显示:内联块;
填充:10px 15px;
背景色:#eee;
边框:1px实心#ddd;
边界半径:8;
颜色:#666;
文字装饰:无;
}
.行动:悬停{
盒影:0px2p5pxRGBA(0,0,0,0.3);
边框颜色:#ccc;
}
.选定{
背景色:#fff;
}