JS限制点击事件的频率怎么实现

如题所述

比如:五秒只能点击一次?

思路:设置一个标记。

var flag = true;
div.addEventListener('click',function(){
    if(flag){
        alert('点击事件执行');
        flag = false;
        setTimeout('flag = true',5000);
    }else{
        console.log('点击事件不执行');
    }
})

点击事件执行条件,flag为真。执行之前判断是否为真,执行之后,flag赋值为false,再紧跟一个定时器,设定五秒后给flag赋值为真。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-01-11
写了一个简易版的,大概是这样:
function throttle(fn, period) {
var bingo = true, timer = -1;
return function() {
if (bingo) {
var args = Array.prototype.slice.call(arguments, 0);
var ret = fn.call(this, args);
bingo = false;
clearTimeout(timer);
timer = setTimeout(function() {
bingo = true;
}, period);
return ret;
}
}
}

思想就是将一个函数包装成一个新函数,新函数内置一个计时器,用来控制原函数的调用频率。

JS限制点击事件的频率怎么实现
思路:设置一个标记。var flag = true;div.addEventListener('click',function(){ if(flag){ alert('点击事件执行'); flag = false; setTimeout('flag = true',5000); }else{ console.log('点击事件不执行'); }})点击事件执行条件,flag为真。执行之前判断是否为真,执...

JS求助,键盘事件和单击事件,限制只执行一次
1、新建html文档,在body标签中添加一个按钮,然后在head标签中引入jQuery文件:2、添加script标签,使用jQuery选择器将按钮选中,然后使用one方法,第一个参数为点击“click”,第二个参数为函数:3、在函数中添加一些命令,这里以弹窗为例,这时只有第一次点击按钮才会弹窗:

一个按钮,如果5分钟内点击再次点击给予提示操作频繁,在JS里怎么写呢
很简单。但是,如果你要离开这个页面再进来, 就没办法限制了。 除非用cookie 储存状态 给个示例 var isLock = flase; \/\/定义全局变量 按钮点击事件:if(isLock){ alert(“操作频繁”);return fasle;} \/\/ 按钮逻辑 ,,,\/\/ do somethings \/\/按钮逻辑end ...isLock = true;setTimeout(functio...

vuejs怎么控制按钮只能点击一次再次点击按钮变灰色
通过v-on事件绑定和computed property来实现。在Vue.js中,可以通过v-on事件绑定和computed property来实现控制按钮只能点击一次,再次点击按钮变灰色的功能。

怎样使js中的onclick事件只触发一次,就是我点击了一次,再次点击的时 ...
1、不用jQuery的方式框起来的3处都是不用jQuery实现的只触发一次的效果。核心代码是这句btn.onclick = null;就是click事件被执行的时候,让它把这个事件本身给清空。2、用jQuery的方式jQuery专门为此功能提供了一个函数one。这样写就能让click这个事件只执行一次。("#btn3").one('click',function()...

JS中的防抖跟节流(Debounce&Throttle)
函数节流(throttle)则确保在持续触发事件时,仅在一定时间间隔内执行一次事件处理函数。例如,用户持续点击,throttle函数会在每1000毫秒间隔后执行一次,以此控制事件处理的频率。总结,防抖(debounce)和节流(throttle)在优化事件处理效率上作用显著。例如,在输入框中输入后触发接口获取联想词的场景中,防抖(...

求助大佬,原生js怎么监控点击事件并传值
很简单,把id写入到这个按钮里面就好了。例如: 然后通过xx.getAttribute("data-id")来获取。如果你用jQuery的话直接$(this).attr("data-id")来获取。这里的data-id是你自己随意定义的,只要不和其他的属性名冲突就好。有些人习惯写item-id随便你的喜好了。

用Js做了个功能,点击文字下边显示一个div,继续在点文字有收回去了...
1. 首先,建议直接写xxx.style.dispaly = "block"; 这样的命令代码;这样,无论点击多少次都一直是显示出来的了;或者是设置的宽度高度等问题,类似于这样,让它的宽高度不变;2. 通过使用一次点击事件后,来移除点击事件;let xxx = document.querySelector("...");①方法一:xxx.onclick = ...

js 怎样使div无法响应点击事件
-- 引入jquery -->第一个第二个第三个$(function(){\/\/给li绑定点击事件$("li").click(function(event) {\/\/返回当前li的索引alert($(this).index());});\/\/给id为unbind的元素删除点击事件$('#unbind').unbind("click");})unbind(type [,data]) \/\/data是要移除的函数 ('#btn')....

求助~怎么实现按钮点击一次之后,按钮不能再点击了,变为灰色,下面代码怎 ...
1、首先新建html页面,设置一个button按钮。2、然后拷贝一张图片,编辑CSS代码。引入JQ的类库,并引入之前编辑的CSS样式。3、编辑js代码,之后运行即可。4、代码目录结构如下。5、最终效果如下图所示,就完成了。

相似回答