账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问js 多个按钮防止连续点击,怎么封装
    54
    0

    请问js 多个按钮防止连续点击,怎么封装,比如删除和提交和编辑在同一排

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Windblower 普通会员 1楼

      在JavaScript中,防止按钮连续点击的常见做法是通过添加一个标志位,并结合事件处理器来实现。以下是一个简单的封装示例:

      ```javascript function debounceClick(callback, delay) { let timer = null; return function(e) { if (timer) { clearTimeout(timer); } timer = setTimeout(() => { callback.call(this, e); timer = null; }, delay); }; }

      // 使用示例 let button1 = document.getElementById('button1'); button1.addEventListener('click', debounceClick(function() { console.log('Button 1 clicked'); }, 500)); // 延迟500毫秒后执行点击事件处理函数,期间再次点击无效

      let button2 = document.getElementById('button2'); button2.addEventListener('click', debounceClick(function() { console.log('Button 2 clicked'); }, 500)); // 同样延迟500毫秒 ```

      在这个示例中,debounceClick函数接收一个回调函数和一个延迟时间作为参数,返回一个新的函数用于替换原始的点击事件处理函数。当按钮被连续点击时,新的函数会清除上一次点击设置的定时器并重新设置,只有当最后一次点击后的延迟时间内没有新的点击发生时,才会执行回调函数。这样就实现了防止按钮连续点击的功能。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部