uniapp 点击事件-防重复点击
1、common文件并创建anti-shake.js文件
// 防止处理多次点击
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文件中引入
import common from './common/anti-shake.js'
Vue.prototype.$noMoreClicks = common.noMoreClicks;
3、页面上使用
<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)}}
}