JavaScript双击事件
JavaScript double click event?
脚本
var timer;
var firing = false;
var begen = function(id) {
alert('one click');
};
var popupAc = function(id) {
alert('double click');
};
function cc(id) {
if (firing) {
popupAc(id);
clearTimeout(timer);
firing = false;
return;
}
firing = true;
timer = setTimeout(function() {
begen(id);
clearTimeout(timer);
firing = false;
}, 250);
}
Html
<div id="myID" onclick="cc()">Click Here</div>
示例:http://jsfiddle.net/LXSZj/11/
问题:
它与ie和chrome配合使用很好,但在firefox中,当我双击时,我会得到两个警报功能。(警告双击事件和单击事件)
我该怎么修?
谢谢。
将clearTimeout移动到警报之上
clearTimeout(timer);
popupAc(id);
附言:我可能错了,只是猜测,这里没有萤火虫。。
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
var timer;
var x = false;
function myfun(){
if(timer){
clearTimeout(timer);
alert('double click');
timer = 0;
return;
}
timer = setTimeout(function(){
alert('singleclick');
timer=0;
clearTimeout(timer);
},250)
}
</script>
</head>
<body>
<p>If you singleclick/double-click on me, I will alert.</p>
<p> i will also alert based on your click</p.
<script>
(function(){
pelem = document.getElementsByTagName('p');
for(var i=0;i<pelem.length;i++){
pelem[i].addEventListener('click',myfun,false);
}
})()
</script>
</body>
</html>
为了控制双击问题,我构建了这个函数,基本上对于每个你想防止用户点击过快、双击等的函数。你调用这个函数,并定义函数发布的时间范围。这对于避免API或端点调用毫无意义、重复或在某些情况下滥用是很有用的。
method_name参数正是您想要的任何标签,以防您想要使用console.log(running_methods)检查阻止的数组列表
用法示例:
var runnning_methods={};
function preventQuickMethod(method_name,callback,delay_time){
if(!delay_time){var delay_time=500;}
if(runnning_methods[method_name]==1){return;}
setTimeout(function(){ runnning_methods[method_name]=0; console.info(method_name+" released");},delay_time);
runnning_methods[method_name]=1;
callback();
}
function nextpage(){
preventQuickMethod("dismissSlot",function(){
document.getElementById("btn").innerHTML="fired at "+Date.now();
},1000);
}
<button onclick="nextpage()">Fire!</button>
<span id="btn" >EHHEHE</span>
相关文章:
- 使用类从一个标记中双击事件
- JavaScript双击事件
- 宣传单:双击时不要触发点击事件函数
- d3 中是否有点击和双击事件.js力定向图
- 如何在元素上调度双击事件
- 使用双击事件时如何取消单击事件
- 如何在 javascript 中的同一元素上应用长单击事件和双击事件
- 有没有办法将所有双击事件绑定到jQuery / JavaScript中的单击等效项
- jQuery,防止在用户双击或多次点击的情况下执行点击事件
- jQuery将数据从单击事件传递到双击
- 如何在 ionic 中以编程方式触发双击事件
- 覆盖CRM网格中双击事件调用的标准方法
- jQuery点击事件需要双击才能工作
- 双击激发事件两次
- 双击时从对话框中选择文件时,避免出现mouseup事件
- 使用raphael.js/openlayers.js库成功附加单击和双击事件的方法
- 谷歌地图's双击事件传播
- 使用单击事件停止元素上的双击事件
- 使用OpenLayers.js捕获定义层上的双击事件
- 如何在jquery中停止双击拖动事件