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

posted on 2014-09-23 18:50  好好先生耶  阅读(304)  评论(1)    收藏  举报