uniapp 点击事件-防重复点击

uniapp 点击事件-防重复点击

1、common文件并创建anti-shake.js文件

javascript 复制代码
// 防止处理多次点击
function noMoreClicks(methods, info) {
    // methods是需要点击后需要执行的函数, info是点击需要传的参数
    let that = this;
    if (that.noClick) {
        // 第一次点击
        that.noClick= false;
        if(info && info !== '') {
            // info是执行函数需要传的参数
            methods(info);
        } else {
            methods();
        }
        setTimeout(()=> {
            that.noClick= true;
        }, 2000)//时间可以自己定义
    } else {
        // 这里是重复点击的判断
		uni.showToast({
			title: '请稍后点击',
			icon: 'error',
			duration: 1000
		})
    }
}
//导出
export default {
    noMoreClicks,//禁止多次点击
}

2、man.js文件中引入

javascript 复制代码
import common from './common/anti-shake.js'
Vue.prototype.$noMoreClicks = common.noMoreClicks;

3、页面上使用

javascript 复制代码
<view class="bottom-btn-box">
    <view class="submit-btn"
     @click="$noMoreClicks(submit)">提交</view>
</view>

<view class="bottom-btn-box">
    <view class="submit-btn"
     @click="$noMoreClicks(submitTwo, item)">提交</view>
</view>
 export default {
	//记得在data中挂载   noClick:true,否则点击会失效
	data() {
	    return {
	        noClick:true,
	    }
	},
	methods:{
	//提交方法
	    submit(){ //不带参数
	        console.log('点击事件---')
	    },
	    submitTwo(item){ //带参数
	        console.log('参数---', item)
		}
	}
}
相关推荐
默_笙36 分钟前
💫 闭包是个背包:拆解小米前端面试题里的三道"闭包陷阱"
前端·javascript·面试
天若有情6731 小时前
粒子星空背景单页HTML模板|炫酷动态星空特效网页(纯前端)
前端·html·css动画·网页特效·粒子星空·静态网页模版
工业涂料百问1 小时前
【趋势前沿】系列(三)工业涂料国产替代的三个台阶:航空、海工、电子的突破路径与认证壁垒
前端
前端snow1 小时前
ai agent --- agentic RAG
前端
gyratesky1 小时前
记录一种很新的大屏开发方式
前端·数据可视化
xy34532 小时前
Axure 9.0 中继器核心结构
前端·ui·html·axure·原型·产品设计
老王以为2 小时前
走进 AI Agent 第四篇(上):知识获取管道——RAG 基础
前端·人工智能·全栈
夏天要喝冰可乐2 小时前
一处写作,多平台分发:我给掘金做了一款开源 Chrome 插件
前端·chrome·vibecoding
货拉拉技术3 小时前
货拉拉开源Hadice:安卓 & 鸿蒙桌面调试工具
前端