uniapp控制点击view事件,不包含子view区域

文章目录

通过事件对象判断目标元素

  • 在父view的点击事件处理函数中,可以通过事件对象的target属性来判断点击的实际元素是不是子view,如果不是,再执行相应的逻辑。
  • 示例代码如下:
html 复制代码
   <template>
     <view @click="parentClick">
       <view class="child-view"></view>
     </view>
   </template>
   <script>
   export default {
     methods: {
       parentClick(e) {
         if (e.target.tagName === 'VIEW' &&!e.target.classList.contains('child-view')) {
           // 这里执行父view被点击且不是子view区域被点击时的逻辑
           console.log('父view被点击,且不是子view区域');
         }
       }
     }
   };
   </script>

使用 CSS 属性阻止事件穿透(如果是覆盖场景)

  • 如果子view在父view之上并且有覆盖关系,可以使用pointer - events:none来阻止子view区域的点击事件穿透到父view(注意这种方法可能会影响子view的其他交互功能,需要谨慎使用)。
  • 示例:
html 复制代码
   <template>
     <view @click="parentClick">
       <view class="child-view" style="pointer-events:none;"></view>
     </view>
   </template>

在这个例子中,子view区域不会响应点击事件,父view的点击事件可以正常触发,并且不会受到子view的干扰(但子view本身不能再通过点击交互了,如需恢复子view的交互功能,可能需要结合 JavaScript 动态修改pointer - events属性)。

希望本文对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。

关注我看更多有意思的文章哦!👉👉

相关推荐
RichardLau_Cx6 分钟前
Google Chrome 浏览器安装「豆包插件」完整教程
前端·chrome·插件·豆包
stereohomology7 分钟前
Typora中绕过主题html方式自定义字体的一个设置问题
前端·html
_OP_CHEN8 分钟前
【前端开发之CSS】(四)CSS 常用元素属性宝典(下):背景与圆角进阶指南,让页面颜值飙升!
前端·css·html·页面开发·gui开发·css元素属性
光影少年9 分钟前
react和vue多个组件在一个页面展示不同内容都是请求一个接口,如何优化提升率性能
前端·vue.js·react.js
aPurpleBerry10 分钟前
React 组件:组件通信、受控组件&非受控组件、异步组件、HOC高阶组件
前端·react.js·前端框架
匠心网络科技11 分钟前
前端框架-Vue双向绑定核心机制全解析(二)
前端·javascript·vue.js·前端框架
晚霞的不甘11 分钟前
Flutter 方块迷阵游戏开发全解析:构建可扩展的关卡式益智游戏
前端·flutter·游戏·游戏引擎·游戏程序·harmonyos
咕噜咕噜啦啦15 分钟前
HTML速通
前端·vscode·html·html5
我是伪码农8 小时前
Vue 1.23
前端·javascript·vue.js
毕设源码-郭学长14 小时前
【开题答辩全过程】以 基于Web的高校课程目标达成度系统设计与实现为例,包含答辩的问题和答案
前端