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

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

  • 在父view的点击事件处理函数中,可以通过事件对象的target属性来判断点击的实际元素是不是子view,如果不是,再执行相应的逻辑。
  • 示例代码如下:
   <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的其他交互功能,需要谨慎使用)。
  • 示例:
   <template>
     <view @click="parentClick">
       <view class="child-view" style="pointer-events:none;"></view>
     </view>
   </template>

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

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

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

uni-app是一个使用Vue.js开发所有前端应用的框架,它允许开发者编写一次代码,然后发布到iOS、Android、Web(包括微信小程序)等多个平台。`scroll-view` 是uni-app中的一个组件,用于创建可滚动的视图区域,类似于原生开发中的滚动容器。 要实现`scroll-view`组件的下拉刷新功能,你可以通过绑定`refresh`事件,并在该事件触发时执行数据更新等操作来完成。以下是一个简单的实现示例: ```vue <template> <view> <!-- scroll-view组件 --> <scroll-view class="scroll-view" scroll-y="true" @refresh="onRefresh"> <!-- 列表内容 --> </scroll-view> <!-- 刷新指示器 --> <loading-indicator v-if="isRefreshing" class="loading-indicator"></loading-indicator> </view> </template> <script> export default { data() { return { isRefreshing: false // 控制刷新指示器的显示 }; }, methods: { onRefresh() { this.isRefreshing = true; // 开始刷新时显示刷新指示器 // 在这里执行获取数据等操作 // ... // 假设fetchData是一个返回Promise的函数,用于异步获取数据 fetchData().then(() => { this.isRefreshing = false; // 数据获取完成后隐藏刷新指示器 }).catch(() => { this.isRefreshing = false; // 处理错误后隐藏刷新指示器 }); } } }; </script> <style> .scroll-view { height: 300px; /* 容器高度 */ } .loading-indicator { /* 刷新指示器样式 */ } </style> ``` 在这个示例中,`scroll-view` 组件设置了垂直滚动(`scroll-y="true"`),并且绑定了一个`refresh`事件到`onRefresh`方法。当用户下拉`scroll-view`时,`refresh`事件被触发,执行`onRefresh`方法。在`onRefresh`方法中,`isRefreshing`变量被设置为`true`以显示一个刷新指示器,之后执行数据更新操作(例如调用`fetchData`函数获取数据),数据更新完成后,将`isRefreshing`变量设置为`false`以隐藏刷新指示器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GoppViper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值