前端 您所在的位置:网站首页 js中的防抖和节流 前端

前端

2024-07-07 17:52| 来源: 网络整理| 查看: 265

不折腾的前端,和咸鱼有什么区别

本篇博客,我们将探讨2个问题,click单双击问题及函数节流与防抖问题,其实都是关于click事件的探讨,当我们对一个按钮进行单击或者双击,或者多次点击,当我们频繁触发click事件时,这时就涉及到我们的函数节流与防抖问题。

单双击(仿双击)

在js中,同一个功能块可能会遇到单击、双击事件两种事件,当我们执行双击事件时,同时也执行了2次单击事件。任何避免执行双击事件时,不执行单击事件。这时我们需要对单击事件进行延时,如果在此延时中又监测到单击事件,那么认为此两次单击属于一个双击事件,则只执行双击事件,并第一时间将延时定时器清理,以防止第二次单击生效。 具体代码如下:

方法一: 对单击事件进行延迟执行

var clickFlag = null;//是否点击标识(定时器编号) function doOnClick(...) { if(clickFlag) { //取消上次延时未执行的方法 clickFlag = clearTimeout(clickFlag); } clickFlag = setTimeout(function() { // click 事件的处理 }, 300);//延时300毫秒执行 } function doOnDblClick(...) { if(clickFlag) { //取消上次延时未执行的方法 clickFlag = clearTimeout(clickFlag); } // dblclick 事件的处理 }

方法二: 利用仿双击原理

var lastClick = 0; function doClick(...){ var timeNow = new Date().getTime(); if(timeNow - lastClick let timer = null return function() { const context = this let args = arguments if(!timer


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有