uniapp-防止连续多次点击

function notMoreTap(means,clickName, ...data) {
// means是点击后需要执行的方法
// clickName是一个变量的名字控制是否是第一次点击
// data是点击需要传的参数:用逗号隔开就可以,...为剩余运算符,除去前两位传的参数,剩下的传的参数都会留在data里
		let that = this;
		if (that[clickName]) {
				// 第一次点击
				that[clickName]= false;
				if(data && data.length>0) {
					if(data.length != 0 && data[0] != ''){
						means(...data);
					}
				} else {
						means();
				}
				setTimeout(()=> {
						that[clickName] = true;
				}, 2000)
		} else {
				uni.showToast({
					title:'请不要重复点击',
					icon:'none'
				})
		}
}

export default {
		notMoreTap
}

把上面写的js文件放到与pages同级的目录common下,在main.js里面引入

import notMoreTap from ‘@/common/notMoreTap .js’
Vue.prototype.$notMoreTap = notMoreTap .notMoreTap ;

<view @tap.stop="$notMoreTap(edit,'notTap',item.id,item.tb_name)">编辑</view>

data() {
		return {
			notTap:true//一定要设置为true
		}
}
methods: {
	edit(id,tab_name){
		console.log(id,tb_name);
	}
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐