前端-防止多次点击

前端-防止多次点击

原理:设置一个状态变量,为true的时候才能触发,false不能触发,运用setTimeout延时修改状态变量状态,达到不能连点的效果。

注释: 这里封装了一个js文件 全局注册 用的时候比较方便

1.封装的JS文件:common.js

javascript 复制代码
// 防止处理多次点击
//封装函数
function noMultipleClicks(methods, info) {
    let that = this;
    //noClick决定是否能够点击
    if (that.noClick) {
       //进入后修改noclick为false
        that.noClick= false;
        //触发传入的方法-完成第一次点击
        if((info && info !== '') || info ==0) {
            methods(info);
        } else {
            methods();
        }
        //通过setTimeout延时将noClick变为true才能进行下次点击的触发
        setTimeout(()=> {
            that.noClick= true;
        }, 5000)
    } else {
		
    }
}
//导出
export default {
    noMultipleClicks,      
}

2.全局注册

javascript 复制代码
//防止多次点击
import common from '@/common/common.js'
Vue.prototype.$noMultipleClicks = common.noMultipleClicks;

3.使用

javascript 复制代码
//调用 
@click="$noMultipleClicks(方法名)"
//设置noClick
noClick:true
相关推荐
咕噜咕噜啦啦8 小时前
Vue3响应式开发
前端·javascript·vue.js
huangql5209 小时前
布局单位与设计稿换算:从「看清」到「量准」
前端
牛奶10 小时前
你不知道的JS(下):深入编程
前端·javascript·电子书
牛奶10 小时前
你不知道的JS(下):深入JS(下)
前端·javascript·电子书
牛奶10 小时前
你不知道的JS(下):总结与未来
前端·javascript·电子书
牛奶10 小时前
你不知道的JS(下):深入JS(上)
前端·javascript·电子书
CappuccinoRose11 小时前
HTML语法学习文档(五)
前端·html·html5·表单
硅基动力AI12 小时前
如何判断一个关键词值不值得做?
java·前端·数据库
yq19820430115613 小时前
使用Django构建视频解析网站 从Naver视频下载器看Web开发全流程
前端·django·音视频
李明卫杭州14 小时前
在 JavaScript 中,生成器函数(Generator Function)
前端·javascript