2011-09-26 15 views
3
....live('click', function(){ 
    /*How do I distinguish left/right/double click*/ 
}); 

看来event.button可以用来区分左键和右键,但是如何区分双击?

而且我不知道是否event.button被所有主流浏览器的支持..

+4

据我所知,你必须使用'dblclick'处理程序是,不'click' ... – Cipi

+0

可能的回答你的问题,请参见本:如何区分左键和右键点击jQuery?](http://stackoverflow.com/questions/1206203/how-to-distinguish-between-left-and-right-mouse-click-with-jquery) –

回答

3

以及存在的DoubleClick一个单独的事件处理程序。该事件是dblclick

+0

但我需要用'live'来绑定未来的元素。 –

+0

是的,所以'.live('dblclick',...)' – Alnitak

+0

dblclick'处理程序也会触发'click'处理程序,至少在某些操作系统和/或浏览器中。同时使用两者是“正式”不宜的。我想可以对“click”处理程序的内容应用一段时间延迟,然后测试是否触发了“dblclick”事件。 – Blazemonger

4

这似乎解决了左,右键单击问题:

$("#element").live('click', function(e) { 
    if(e.button == 0) { 
     // Left mouse button was clicked (non-IE) 
    } 
}); 

对于IE

$("#element").live('click', function(e) { 
    if(e.button == 1) { 
     // Left mouse button was clicked (IE only) 
    } 
}); 

见链接查看更多细节

jQuery live click binds

相关问题