2014-01-22 22 views
2

我打算使用某種工具提示功能。在桌面上,我希望打開懸停效果,並且每次用戶點擊時都會有鏈接並直接打開。在觸控設備上,我想禁用鏈接,只需觸摸(點擊任意)即可打開工具提示。所以基本上,我需要禁用觸摸設備的鏈接。爲它指定一個CSS類將是非常有用的。如何禁用觸摸設備的鏈接

感謝您的幫助。 乾杯。

+0

您可以使用:懸停,因爲觸摸設備不支持它,而非移動? –

+0

未來,最好說出你已經嘗試過的東西。 – rvighne

回答

4

的JavaScript:

if ('ontouchstart' in window) { 
    $("a").click(function (e) { 
     e.preventDefault(); 
     // trigger tooltip... 
    }); 
} 

更改選擇的東西更嚴格的,如果你不希望被指定的所有<a>秒。


此外,最好使用Modernizr這些東西。如果你還可以加入另一個圖書館,它會做得很好。以下是僅針對觸摸事件進行測試的自定義構建的鏈接:http://modernizr.com/download/#-touch-teststyles-prefixes

然後用Modernizr.touch替換IF的條件。

+1

+1,但因爲[ontouchstart'在所有瀏覽器中不受支持](http://caniuse.com/#feat=touch),所以依賴[Modernizr](http:// modernizr)是一個好主意。 com /)或其他一些更徹底檢查的工具。例如,Modernizr也使用CSS媒體查詢'@media(touch-enabled)'作爲後備。 – feeela

+0

@feeela好的建議。補充說,答案。 – rvighne

0

我已經使用了JS方法,我在第一個觸摸事件中設置了data-*屬性,並使用event.preventDefault()來取消鏈接操作。如果第二個觸摸事件被觸發(即用戶第二次觸摸),我現在可以檢查data-*屬性是否已設置並且什麼都不做 - 這意味着事件處理程序返回true並且執行了鏈接操作。這在處理彈出菜單時非常常見,其中第一級項目也鏈接到某種子頁面。