美文网首页
js实现点击防抖

js实现点击防抖

作者: 清风昙 | 来源:发表于2022-06-28 21:11 被阅读0次

js防抖可以让被调用的函数在连续高频操作过程中只调用一次,使用场景:有oninput, onmousemove, onscroll, onresize等事件。实现如下:

function debounce (callback, delay = 1000) {
    let timer = null;
    return function () {
        // 因为这里返回出去的方法是被 外部元素调用的, 
        // 所以这里的 this 就指向了外部元素
        let self = this;
        // 每个函数内部都一个属性 arguments, 其中包括了所有外部调用这个函数传递进来的参数
        let args = arguments;
        timer && clearTimeout(timer)
        timer = setTimeout(function () {
            // apply: 作用就是改变方法内部this的指向, 并能将参数传递给该方法, 最后立即执行这个函数
            callback.apply(self, args)
        }, delay);
    }
}

// 使用
let onInput = document.queryInput('input');
onInput = debounce (function(args){
    console.log(this)
    console.log(args)
}, 2000)

相关文章

  • js实现点击防抖

    js防抖可以让被调用的函数在连续高频操作过程中只调用一次,使用场景:有oninput, onmousemove, ...

  • 实现js防抖

    防抖(debounce) 第一步 实现一个函数,返回一个函数func参数,第一个参数是一个函数,第二个参数是一个数...

  • js防抖节流实现

    防抖:就是指触发事件后在n秒内函数只能执行一次,如果在n秒内又触发了事件,则会重新计算函数执行时间 节流:就是指连...

  • js实现防抖函数

    函数防抖 当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定时间到来之前,又触发了事...

  • 防抖点击

    Hook反射https://blog.csdn.net/qq_32532321/article/details/8...

  • flutter:如何实现防抖,防重复点击

    使用时间差方案,实现防重复点击 使用方式: 缺点:每个防重复点击的事件都需要持有各自的 throttleUtil ...

  • 项目常用代码

    节流 } 防抖 } 页面滚动(requestAnimationFrame) vue全局点击防抖

  • 神兵利器--RxBinding,用的就是你

    为什么要使用RxBinding,如下场景: 点击防抖 原始实现方式 使用用RxBinding 监听某按钮多次点击,...

  • 前端性能优化-浅谈js防抖和节流

    浅谈js防抖和节流

  • js函数防抖、节流实现

    React中使用防抖函数和节流函数 在React事件调用时,React传递给事件处理程序是一个合成事件对象的实例。...

网友评论

      本文标题:js实现点击防抖

      本文链接:https://www.haomeiwen.com/subject/ioszvrtx.html