亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這樣寫debounce就會執行最后一次mouseenter

if (timer) {

clearTimeout(timer)

}


...

timer = null

...

正在回答

1 回答

其實就是判斷在定時器延遲時間內定義的事件如果再次被觸發就清除掉上一次定時器再重新定義一個計時器。
結尾timer=null是為了把延遲事件執行結束后清空timer變量,它并不影響if里面的判斷,因為你在延遲時間內觸發
事件時定時器的代碼還沒有被執行。也就是說之前定義timer仍然為不為null。只有在執行過后它才是null。


1 回復 有任何疑惑可以回復我~
#1

為了前端

在清楚timer之前用conso.log()打印timer,觸發事件會發現timer從undefined 變為null .變為快速滑到其他li時,會從null變為數字 1 2 3 4 5等連續下去。請問這個數字代表什么呢?
2019-12-16 回復 有任何疑惑可以回復我~
#2

為了前端

準確的說,if判斷力面的條件是什么呢??
2019-12-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么這樣寫debounce就會執行最后一次mouseenter

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號