uniapp小程序:大盒子包裹小盒子但是都有点击事件该如何区分?

在开发过程中我们会遇到这种情况,一个大盒子中包裹这一个小盒子,两个盒子都有点击事件,例如:

这个时候如果点击评价有可能会点击到它所在的大盒子,如果使用css中的z-index设置层级的话如果页面的盒子多的话会混乱,所以我们可以使用事件修饰符来简化这个过程。对于点击事件,可以使用 .stop 修饰符来阻止事件冒泡,代码简化后如下所示:

<template>  
  <view class="big-box" @click="bigBoxClick">  
    <!-- 大盒子 -->  
    <view class="small-box" @click.stop="smallBoxClick">  
      <!-- 小盒子 -->  
      <!-- 小盒子的内容 -->  
    </view>  
  </view>  
</template>  
  
<script>  
export default {  
  methods: {  
    bigBoxClick() {  
      console.log('大盒子被点击了');  
    },  
    smallBoxClick() {  
      console.log('小盒子被点击了');  
    }  
  }  
}  
</script>  
  
<style>  
/* ... 样式代码 ... */  
</style>

这样通过 .stop 修饰符来阻止事件冒泡点击小盒子的时候就会保证不会点击到大盒子,点击大盒子也不会触发小盒子(虽然本来就不会触发,但还是说一下)。

有小伙伴需要做毕设的可以私信哦(对于小白可以教学功能实现、免费配环境

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Uniapp 中实现点击盒子之外的部分隐藏盒子,可以参考以下步骤: 1. 在需要隐藏的盒子上添加一个 `v-show` 指令,用于控制盒子的显示和隐藏。 ```html <template> <div class="container" @click="onContainerClick"> <div class="box" v-show="isBoxVisible" @click.stop> <!-- 盒子内容 --> </div> </div> </template> ``` 2. 在容器上添加一个 `@click` 事件监听器,用于处理点击容器的事件。同时,在盒子上添加一个 `@click.stop` 事件修饰符,用于阻止点击事件冒泡到容器上。 ```html <template> <div class="container" @click="onContainerClick"> <div class="box" v-show="isBoxVisible" @click.stop> <!-- 盒子内容 --> </div> </div> </template> ``` 3. 在组件的 `data` 中添加一个 `isBoxVisible` 属性,并将其初始值设置为 `false`,表示盒子默认是隐藏的。 ```javascript export default { data() { return { isBoxVisible: false } }, methods: { onContainerClick() { // 点击容器时,判断盒子是否已经显示,如果已经显示,则隐藏盒子;否则,显示盒子。 this.isBoxVisible = !this.isBoxVisible; } } } ``` 在这个示例代码中,我们首先在需要隐藏的盒子上添加了一个 `v-show` 指令,用于控制盒子的显示和隐藏。然后,在容器上添加了一个 `@click` 事件监听器,用于处理点击容器的事件。在事件处理函数中,我们判断盒子是否已经显示,如果已经显示,则隐藏盒子;否则,显示盒子。同时,我们在盒子上添加了一个 `@click.stop` 事件修饰符,用于阻止点击事件冒泡到容器上。这样,当点击盒子时,不会触发容器的点击事件,从而避免了盒子的显示和隐藏出现异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值