js 点击按钮的防抖

防抖 (debouncing) 是一种技术,旨在减少函数在短时间内被频繁调用的情况。

在 JavaScript 中,可以通过使用 setTimeout 函数来实现防抖。

例如,假设你有一个在点击按钮时调用的函数:

function handleClick() {
  console.log('Button clicked');
}

document.querySelector('button').addEventListener('click', handleClick);

要在点击按钮时实现防抖,可以这样改写代码:

function debounce(fn, delay) {
  let timer;
  return function() {
    clearTimeout(timer);
    timer = setTimeout(() => fn.apply(this, arguments), delay);
  };
}

function handleClick() {
  console.log('Button clicked');
}

document
  .querySelector('button')
  .addEventListener('click', debounce(handleClick, 1000));

在上面的代码中,我们使用了 debounce 函数来包装 handleClick 函数,并将 debounce 函数作为事件监听器的回调函数。这样,每当点击按钮时,都会清除 timer 并重新设置它,以延迟调用 handleClick 函数。如果在延迟期间再次点击按钮,则会再次清除 timer 并重新设置它,从而再次延迟调用 handleClick 函数。这样,就可以在点击按钮时实现防抖了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值