2013-02-26 22 views
1

我正在尋找一種爲觸摸設備綁定「touchstart」併爲桌面設備「點擊」的綁定。創建一個支持觸摸的綁定並單擊

在點擊處理之前,綁定「點擊」某些觸摸設備會產生500毫秒的延遲。

因爲主流瀏覽器現在支持觸摸(jQuery TouchClick),但使用「typeof window.ontouchstart」從桌面分離觸摸設備不起作用,但用鼠標點擊不會模擬觸摸事件。

jQuery Mobile有這個功能,as suggested here,但我正在尋找一個精簡的jQuery插件的這個功能,而不使用jQuery Mobile框架。

+0

爲什麼不將兩者都綁定,並在觸摸偵聽器中設置一個標記,點擊偵聽器可以檢查它並忽略它是否爲真? – Graham 2013-02-26 14:42:24

回答

1

綁定兩者,那麼觸發觸發時忽略隨後的點擊事件?

var ignoreClick = false; 

function touchOrClick(e){ 
    if (e.type == 'click'){ 
     if (ignoreClick){ 
      ignoreClick = false; 
      return; 
     } 
    } else { 
     ignoreClick = true; 
    } 
    // do stuff 
} 

node.addEventListener('ontouchstart', touchOrClick, false); 
node.addEventListener('onclick', touchOrClick, false); 
+0

感謝您的回覆。這有效,但我也在尋找更優雅的解決方案。 – Skarbo 2013-02-26 15:14:06

0

如果您升級到最新版本的jquery-touchclick,它現在支持兩者。