如何屏蔽父元素中指定子元素的点击事件?

<div class="p">
    <div class="c1">不触发p的点击事件</div>
    <div class="c2">触发p的点击事件</div>
    <div class="c3">触发p的点击事件</div>
</div>

定义了一个函数监听.p的点击事件,如果点击鼠标时,鼠标位于.p的子元素.c1上,则跳过定义的点击事件。
请问该如何实现?

阅读 6.6k
3 个回答
p.addEventListener('click',e => {
    if(e.target.className == 'c1') return false;
    //正常情况下的代码
})

没法跳过,只有点击不处理。
监听函数里判断e.target.className==='c1',直接return就行了。

就楼上所说的方法了,最好还是用jquery的子选择器更简单点。
原生如下:
window.onload = function() {

            var p = document.getElementsByClassName("p")[0];
            p.addEventListener('click', function(e) {
                if(e.target.className == 'c1') {
                    return false;
                } else {
                    alert(123);
                }
            })
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题