双击(dblclick)的流程是:mousedown,mouseout,click,mousedown,mouseout,click,dblclick
; 在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会。也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果。而不是一次双击事件(dblclick)结果和两次单击事件结果(click)。 所以可以使用计时的方式去除掉一个多余的单击事件就行了。
$(function(){
var TimeFn = null;
$('.testdiv').click(function () {
clearTimeout(TimeFn);
TimeFn = setTimeout(function(){
alert('click')
},300);
});
$('.testdiv').dblclick(function () {
clearTimeout(TimeFn);
alert('dbclick');
})
});