封装常用的函数(防止重复点击)

318 阅读1分钟
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;
        }, 1500);
      } else {
        // uni.showToast({
        //   title:'请不要重复点击',
        //   icon:'none'
        // })
        return;
      }
    },

使用的时候只需将点击函数的名字放到它的第一个参数位置,后续参数依次用逗号隔开就好

<div class="evaluate" v-if="!dvalue.is_follow" @click.stop="notMoreTap(follow_click, 'tap', $event, dvalue)" ></div>

这里需注意:需要再data中定义一个默认状态tap为true的状态(将其放在参数的第二位,格式为字符串),不然会一直默认走else

data(){
    return{
        tap: !0, // 多次点击所需的状态
    }
}