今天遇到一个需要单击和双击并存的问题,查询后得到解决方法,记录备忘。
方法如下:
首先dbclick的触发流程为:mousedown、mouseup、click、mousedown、mouseup、click、dbclick,如果单击双击事件并存时,首先触发两次click,再触发dbclick(可通过定时器来测试),因此我们在dbclick时可以通过setTimeout来去除click。
$('.testdiv').click(function () { clearTimeout(TimeFn); TimeFn = setTimeout(function(){ alert('click') },300); }); $('.testdiv').dblclick(function () { clearTimeout(TimeFn); alert('dbclick'); })