Uni-app 踩坑 - @click.self不生效

在uni-app自学项目中开发抽屉功能时,遇到点击事件在H5端不生效的问题。通过将<view>替换为<div>并使用@click.self解决了问题,该事件修饰符仅在H5端支持。文章鼓励技术分享和交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

· 背景

自学Uni-app练习项目中,需要开发一个抽屉功能,通过点击图标由左侧延伸出遮罩层,如下,要求点击遮罩层右侧部分收回抽屉(此处借鉴了拾一九博主的idea,感谢技术分享)。

在这里插入图片描述

<!-- 抽屉部分大致框架 -->
<template>
	<view class="drawer" @click.self="hideDrawer($event)">
		<view class="content">
			<view class="profile">
				<image src="@/static/iconfont/avatar.png" @click="test"></image>
				<text class="username">{{ username }}</text>
				<text class="iconfont icon-QRcode"></text>
			</view>
			<view class="personal">...</view>
			<view class="personal">...</view>
			<view class="personal">...</view>
			<button>退出登录/关闭</button>
		</view>
	</view>
</template>

· 问题 & 解法

由于是移动端的项目,因此在开发中出于管理方便和策略统一的目的,尽可能使用uni-app的内置组件,此处就使用了<view> 组件来实现h5中<div>的效果,然而,当给<view>组件增加@click.self事件时,点击动作 不生效

这里是因为.self事件修饰符只在H5端支持,通过<view>标签转换为<div>标签解决了这个问题。

关于<view> 的说明可参考官网

在这里插入图片描述

欢迎各位大佬一起交流学习~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值