在双击事件(dblclick)过程中,触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会。也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果。而不是一次双击事件(dblclick)结果和两次单击事件结果(click)。 所以我们只要屏蔽一次click事件就可以了。
a.bind("myClick",{dom:dom},this.selectShortcut);
a.bind("myDblClick",{dom:dom},this.updateShortcut);
var timer ;
//解决鼠标单击和双击冲突的方法
a.click(function(){
clearTimeout(timer);
var _a = $(this);
timer = setTimeout(function(){
$(_a).trigger(jQuery.Event("myClick"));
}, 300);
}).dblclick(function(){
clearTimeout(timer);
$(this).trigger(jQuery.Event("myDblClick"));
});