朱丽叶

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

vue 防连点

// 全局注册
// 防止el-button重复点击
Vue.directive('preventReClick', {
  inserted: function (el, binding) {
    el.addEventListener('click', (e) => {
      if (!el.disabled) {
        el.style.pointerEvents = 'none'
        setTimeout(() => {
          el.style.pointerEvents = 'auto'
        }, binding.value || 2000)
      } else {
        // disabled为true时,阻止默认的@click事件
        e.preventDefault()
        e.stopPropagation()
      }
   }, true)
 }
});



// 局部注册
directives: {
    preventReClick: {
      inserted: function (el, binding) {
        el.addEventListener('click', (e) => {
          if (!el.disabled) {
            el.style.pointerEvents = 'none'
            setTimeout(() => {
              el.style.pointerEvents = 'auto'
            }, binding.value || 2000)
          } else {
            // disabled为true时,阻止默认的@click事件
            e.preventDefault()
            e.stopPropagation()
          }
        }, true)
      }
    }
  },


// 基本使用
<div @click="handelClick" v-preventReClick> 防连点</div>
<van-button @click="handelClick" v-preventReClick> 防连点</van-button>

posted on   朱丽叶  阅读(35)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2021-08-02 ES6数组方法
点击右上角即可分享
微信分享提示