关于实现点击父元素点击后显示子元素,但点击子元素不消失的方法(阻止事件传递)

简介: 关于实现点击父元素点击后显示子元素,但点击子元素不消失的方法(阻止事件传递)

未阻止事件传递的效果:

<body>
    <div class="father_box">
      <p>父元素</p>
      <div class="child_box">
        <p>子元素(点我)</p>
      </div>
    </div>
    <script>
      // 父元素点击事件,点击使子元素显示/隐藏
      $(".father_box").on("click",function(){
        let show = $(".child_box").css("display")
        console.log(show);
        if(show == "none"){
          $(".child_box").css("display","block")
        }else{
          $(".child_box").css("display","none")
        }
      })
      // 子元素点击事件,点击后输出内容
      $(".child_box").on("click",function(){
        console.log("您点击了子元素");
      })
    </script>
  </body>

看,子元素被父元素的点击事件影响到了,子元素的点击事件中并没有使元素隐藏的代码。

这是因为“事件捕获”和“事件冒泡”的缘故

我们只需阻止子元素的事件冒泡,不让它传递,结果如下:

效果:

完美解决 > w <``

谢谢观看

目录
相关文章
|
22天前
【实现手机端上滑滚动加载列表】判断页面是否滚动到底部或者指定元素位置
【实现手机端上滑滚动加载列表】判断页面是否滚动到底部或者指定元素位置
|
6月前
|
小程序
小程序中点击子元素事件而不触发父元素的点击事件
小程序中点击子元素事件而不触发父元素的点击事件
104 0
Qml实用技巧:在可视元素之前半透明覆盖一个可视元素,阻止鼠标透(界面)传(防止点击到被遮挡的按钮)
Qml实用技巧:在可视元素之前半透明覆盖一个可视元素,阻止鼠标透(界面)传(防止点击到被遮挡的按钮)
Qml实用技巧:在可视元素之前半透明覆盖一个可视元素,阻止鼠标透(界面)传(防止点击到被遮挡的按钮)
|
3月前
element-plus:el-Dialog对话框组件垂直居中、禁止屏幕滚动、使用内滚动
element-plus:el-Dialog对话框组件垂直居中、禁止屏幕滚动、使用内滚动
|
7月前
|
前端开发 JavaScript 容器
JavaScrpit如何实现弹出遮罩层后将页面固定到当前位置且无法继续滚动
JavaScrpit如何实现弹出遮罩层后将页面固定到当前位置且无法继续滚动
29 0
|
5月前
|
iOS开发
ios中,输入框获得焦点时,页面输入框被遮盖,定位的元素位置错乱
ios中,输入框获得焦点时,页面输入框被遮盖,定位的元素位置错乱
35 1
|
6月前
|
JavaScript
checkbox选中和取消,控制dom元素颜色变化
checkbox选中和取消,控制dom元素颜色变化
26 0
|
JavaScript
js监听页面或元素scroll事件,滚动到底部或顶部
js监听页面或元素scroll事件,滚动到底部或顶部
1094 0
js监听页面或元素scroll事件,滚动到底部或顶部
|
前端开发 JavaScript 计算机视觉
css动画:文字向上移动并逐渐消失 点击按钮显示+1上移淡出
css动画:文字向上移动并逐渐消失 点击按钮显示+1上移淡出
938 0
css动画:文字向上移动并逐渐消失 点击按钮显示+1上移淡出
el-dialog嵌套问题,第二个弹窗会被遮住的解决办法
el-dialog嵌套问题,第二个弹窗会被遮住的解决办法
678 0