【问题标题】:How to use Lodash Debounce on resize如何在调整大小时使用 Lodash Debounce
【发布时间】:2018-02-02 03:01:08
【问题描述】:

我正在尝试在调整窗口大小时触发一个事件,它似乎不起作用。

$(window).resize(function(){
   _.debounce(function(){
       console.log("hello");
   }, 100);
})

【问题讨论】:

  • _.debounce 返回一个函数,你必须调用它。

标签: lodash


【解决方案1】:

实际上在他们的 lodash 文档中显示为示例,lodash#debounce

$(window).on('resize', _.debounce(function() {
  console.log('resized!');
}, 100));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

【讨论】:

    【解决方案2】:

    Vanilla JS 以防万一:

    window.onresize = _.debounce(() => {
      console.log('resized!')
    }, 100)
    

    编辑:实际上使用事件监听器可能更好:

    window.addEventListener('resize', _.debounce(() => {
      console.log('resized!')
    }, 100)
    

    【讨论】:

    • @b00t 不确定 downvote/confusion 是为了什么,OP 询问如何在调整大小时触发 lodash debounce,而不是如何在纯 vanilla js 中实现 debounce。如果感兴趣,这篇文章很好地解释了davidwalsh.name/javascript-debounce-function 以及查看 lodash 直接实现的内容github.com/jashkenas/underscore/blob/… - 这只是提到如何在没有 jQuery 的情况下满足 OP 的请求
    • 完全是我的错,当我看这个的时候一定很累。删除了我原来的评论,以免将任何人推向错误的方向。
    猜你喜欢
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 2019-06-25
    相关资源
    最近更新 更多