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)
		}
	}
}
相关推荐
silence_xiang13 小时前
【React】首页悬浮球实现,点击出现悬浮框
前端·javascript·react.js
xiaaaa.z13 小时前
macos HbuildX 使用cli脚本创建uniapp 运行时报错“cli项目运行依赖本地的Nodejs环境,请先安装并配置到系统环境变量后重试。”
macos·uni-app
隔壁的大叔13 小时前
由于vite版本不一致,导致vue组件引入报错
javascript·vue.js
申阳13 小时前
Day 11:集成百度统计以监控站点流量
前端·后端·程序员
2501_9159090613 小时前
深入理解HTTPS和HTTP的区别、工作原理及安全重要性
安全·http·ios·小程序·https·uni-app·iphone
Cache技术分享13 小时前
239. Java 集合 - 通过 Set、SortedSet 和 NavigableSet 扩展 Collection 接口
前端·后端
超级罗伯特14 小时前
大屏自适应,响应式布局,亲测有效
前端·javascript·html·大屏·驾驶舱
青衫码上行14 小时前
【Java Web学习 | 第九篇】JavaScript(3) 数组+函数
java·开发语言·前端·javascript·学习
前端老宋Running14 小时前
React组件命名为什么用小写开头会无法运行?
前端·react.js·面试
百***071814 小时前
WebSpoon9.0(KETTLE的WEB版本)编译 + tomcatdocker部署 + 远程调试教程
前端