执行双击事件(dblclick)时,会触发两次单击事件(click)。
即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),执行双击事件(dblclick)时会触发两次单击事件(click)。
先看一下点击事件的执行顺序:
单击(click): mousedown,mouseout,click; 双击(dblclick): mousedown,mouseout,click, mousedown,mouseout,click, dblclick;
利用 setTimeout 来解决
//定义setTimeout执行方法
var TimeFn = null;
$('div').click(function () {
// 取消上次延时未执行的方法
clearTimeout(TimeFn);
//执行延时
TimeFn = setTimeout(function(){
//do function在此处写单击事件要执行的代码
},300);
});
$('div').dblclick(functin () {
// 取消上次延时未执行的方法
clearTimeout(TimeFn);
//双击事件的执行代码
})
至此,能一定程度上避免双击(dblclick)时触发单击(click)。
参考:http://www.cnblogs.com/wyblog/archive/2011/12/15/2289219.html
