在main.js注册
import noMultipleClicks from './wmkit/noclick.js'; Vue.prototype.$noMultipleClicks = noMultipleClicks.noMultipleClicks;

 
// 防止处理多次点击
function noMultipleClicks(methods, info) {
    // methods是需要点击后需要执行的函数, info是点击需要传的参数
    let that = this;
	if(that.functionName != methods || that.info != info) {
		that.noClick = true;
	};
    if (that.noClick) {
        // 第一次点击
        that.noClick= false;
		that.functionName = methods;
		that.info = info;
        if(info && info !== '') {
            // info是执行函数需要传的参数
            methods(info);
        } else {
            methods();
        }
        setTimeout(()=> {
            that.noClick= true;
        }, 500)
    } else {
        // 这里是重复点击的判断
		uni.showToast({
			title: '请稍后操作',
			icon: 'none'
		});
    }
}
//导出
export default {
    noMultipleClicks,//禁止多次点击
}

在使用的页面data里noClick: true,functionName: ‘’,info: ‘’, 如果是单个按钮functionName和info可不加
在页面使用$noMultipleClicks(函数,需要传递的参数)

Logo

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

更多推荐