JQuery在同一元素绑定click,dbclick
JQuery在同一元素绑定click,dbclick
在项目过程中需要实现在一个元素上同时绑定单击和双击事件,但是直接绑定代码是不行的。查看API可以看到:
当鼠标指针停留在元素上方,然后按下并松开鼠标左键时,就会发生一次 click。在很短的时间内发生两次 click,即是一次 double click 事件。
提示:如果把 dblclick 和 click 事件应用于同一元素,可能会产生问题。
由于双击事件的判断与操作系统和浏览器有关,所以是在同一元素同时绑定单击,双击事件的时候会出现问题。
为了实现同时绑定单击双击可以使用如下代码:
$(document).ready(function(){
//双击之间的最大间隔时间,点击次数,定时器对象
var deley=1000,click=0,timer=null;
//阻止双击事件
$(".test").dblclick(function(event){
event.preventDefault();
})
$(".test").click(function(e)
{ //每次点击,点击次数加1
click++;
//判断是否单击事件
if(click==1){
//设置定时器,当超过一定时间没有在点击,认为时单击事件
timer=setTimeout( function(){
click=0;
alert("单击事件");
},deley)
}else{
clearTimeout(timer);
alert("双击事件");
click=0;
}
});
});
本文参考自stackoverflow
浙公网安备 33010602011771号