2012-03-14 60 views
1

只要不在錨點元素<a>上,jQuery .hover()事件似乎在移動設備上正常工作(在iOS 5.1 Safari上測試它)。正常工作意味着它會觸發綁定在其上的懸停處理程序。移動設備上的<a>標記上的jQuery懸停事件

但是,當懸停事件在<a>上時,瀏覽器將被重定向到來自href的URL。

我希望它在第一次觸摸時首先懸停(運行事件處理程序),然後在第二次觸摸時重定向(觸發單擊)。有沒有辦法做到這一點?

回答

3

您必須添加一個事件處理程序,以改變一些關於DOM的鏈接(如切換一個類來改變背景顏色等)

Mobile Safari docs

鼠標事件被傳遞您可以按照圖6-4中所示的其他網頁 瀏覽器的相同順序進行操作。如果用戶點擊一個不可點擊的元素,則不會生成任何事件。如果用戶點擊可點擊的元素,則按以下順序到達:mouseover,mousemove,mousedown, mouseup,然後單擊。只有當用戶點擊 另一個可點擊的項目時,纔會出現鼠標移出事件。另外,如果頁面內容在 mousemove事件中發生更改,則不會發送序列中的後續事件。 此行爲允許用戶在新的內容挖掘

Figure 6-4

+0

我還是不明白它的意思是「改變」,因爲我已經嘗試了很多東西(包括你的建議之一),但仍然無法阻止它觸發點擊事件。對此有何闡述?謝謝 – Sufendy 2012-03-14 09:28:44

+0

要阻止它點擊添加參數e並設置e.preventDefault();在提供給hover()的函數中;對於另一部分,我不完全確定我明白你想達到什麼目的。我在這裏做了一個修補程序:https://tinker.io/ff4ab這是你想要的嗎? – 2012-03-14 10:51:50

+0

@limelights,我仍然需要它重定向,但在第二次觸摸。這是一個下拉菜單。所以,第一次觸摸應打開子菜單,第二次觸摸只會重定向。 – Sufendy 2012-03-15 02:58:30