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)
		}
	}
}
相关推荐
人生鹿呀11 小时前
AI 情绪陪伴助手:从 0 到 1 的 PWA + 跨端应用实战
前端
人生鹿呀11 小时前
从零打造滑板文化社区平台:React 19 + Node.js + AI 微服务全栈实战
前端
网络工程小王12 小时前
【LCEL 链式调用详解】调用篇-2
java·服务器·前端·数据库·人工智能
swipe12 小时前
别把语音 Agent 当成“接两个 API”——用 NestJS 搭一套 ASR + LLM + 流式 TTS 的实时语音助手
前端·后端·llm
GISer_Jing12 小时前
AI Agent中游产业链全景拆解:智能体开发的核心生态与技术版图
前端·人工智能·后端
前端之虎陈随易13 小时前
2年没用Nodejs了,Bun很香
linux·前端·javascript·vue.js·typescript
Hooray13 小时前
用时7天,花费30元,我vibe coding这个网站
前端·agent·ai编程
小小高不懂写代码13 小时前
RAG--检索增强生成--原理及实战
前端·人工智能
空中海13 小时前
04 工程化、质量体系与 React 生态
前端·ubuntu·react.js
好运的阿财14 小时前
OpenClaw工具拆解之host_workspace_write+host_workspace_edit
前端·javascript·人工智能·机器学习·ai编程·openclaw·openclaw工具