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属性)。

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

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

相关推荐
Jinuss11 小时前
源码分析之React中updateContainerImpl方法更新容器
前端·react.js·前端框架
Mr Xu_12 小时前
Vue + Element Plus 实现前端导出 Excel 功能详解
前端·javascript·vue.js
2501_9151063212 小时前
如何在iPad上高效管理本地文件的完整指南
android·ios·小程序·uni-app·iphone·webview·ipad
仰泳之鹅12 小时前
【杂谈】使用Edge浏览器下载文件显示“Microsoft Defender SmartScreen 已阻止此不安全文件”的解决方法
前端·edge
万邦科技Lafite12 小时前
小红书评论数据一键获取,item_reviewAPI接口讲解
大数据·前端·数据库·chrome·电商开放平台
2501_9151063213 小时前
iOS 成品包加固,在只有 IPA 的情况下,能做那些操作
android·ios·小程序·https·uni-app·iphone·webview
meng半颗糖14 小时前
vue3+tpescript 点击按钮跳转新页面直接通过链接预览word
前端·vue.js·word
击败不可能14 小时前
vue做任务工具方法的实现
前端·javascript·vue.js
郑州光合科技余经理14 小时前
同城020系统架构实战:中台化设计与部署
java·大数据·开发语言·后端·系统架构·uni-app·php
林恒smileZAZ14 小时前
Uni-app 性能天坑:为什么 v-if 删不掉 DOM 节点
uni-app·notepad++