js 事件监听怎么监听特定元素?

图片描述
如图,这是一个表格,图中蓝色的元素,他有若干个子元素, 如果我想监听整个表格,怎么才能只响应蓝色元素的响应事件,而其他元素都不触发点击事件?
我也试过:
if(event.target.className.indexOf("blue") === -1){

return;

}else{

....

}
这个是没用的,也不知道为什么不能这样写;请各位执教

阅读 3.4k
3 个回答

套个循环,向上检查父元素

  for (let el = e.target; el !== e.currentTarget; el = el.parentElement) {
       if(el.className.indexOf("blue") === -1){..}else{..}
    }
   

理论上你这种写法是可以的,不过因为你给的代码并不多,也不能判定其他地方写的对不对,可以很简单的打个断点,或者添加一个console.log(event.target.className)看下究竟是什么。

新手上路,请多包涵

那是因为,你的blue下,还有其他的元素,点击时 event.target 可能是blue下的子元素,所以你要向上找,不能直接判读

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题