首页 > 代码库 > 实现每次触发事件后隔一段时间后才能再次触发事件
实现每次触发事件后隔一段时间后才能再次触发事件
比如:
每次点击“提交”按钮后隔3s后才能再次提交。
可以这样:点击后设置按钮不可用,并在3s后再设置按钮可用
$(‘#button1‘).click(function(){ //在这里提交或做别的事 $(this).attr("disabled",true); setTimeout("$(‘#button1‘).attr(‘disabled‘,false);", 3000); //此处setTimeout里面不能用$(this),this指的是window对象});
如果不是button,而是某个div,则可以通过一个自定义属性或别的变量来标示是否要响应事件:
对节点添加canClick属性:<div id=‘div1‘ canClick=true>click</div>
$(‘#div1‘).click(function(){ if($(this).attr(‘canClick‘)==‘true‘){ //do something $(this).attr("canClick",‘false‘); setTimeout("$(‘#div1‘).attr(‘canClick‘,‘true‘);", 3000); }});
注意:
自定义属性只能是string类型,即使在html节点里设置canClick=0或canClick=false,或直接<div canClick>,
js取值时都会变成‘0’和‘false‘和‘‘(空字符串),当为前两种情况时if($(this).attr(‘canClick‘))均为true。
所以要用字符串与自定义属性值比较,而不是用Number和Boolean类型与它判断。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。