为什么这样写debounce就会执行最后一次mouseenter

来源:4-1 利用延迟和去抖技术进行优化

SmallSunnyFox

2019-03-18 18:23

if (timer) {

clearTimeout(timer)

}


...

timer = null

...

写回答 关注

1回答

  • 啦啦惟
    2019-07-26 11:07:18
    其实就是判断在定时器延迟时间内定义的事件如果再次被触发就清除掉上一次定时器再重新定义一个计时器。
    结尾timer=null是为了把延迟事件执行结束后清空timer变量,它并不影响if里面的判断,因为你在延迟时间内触发
    事件时定时器的代码还没有被执行。也就是说之前定义timer仍然为不为null。只有在执行过后它才是null。


    为了前端

    准确的说,if判断力面的条件是什么呢??

    2019-12-16 13:55:03

    共 2 条回复 >

JS实现京东无延迟菜单效果

JS模拟京东商城无延迟菜单效果,学习菜单结构和样式处理

57664 学习 · 138 问题

查看课程

相似问题