2012-06-11 126 views
0

我有我的HTML代碼爲;iPad懸停/點擊問題

<a href="someTarget.html" class="menuLink">Link</a> 

現在JS代碼以前是;

$(".menuLink").mouseover(function(){ 
    //code for show() submenu 
} 


$(".menuLink").mouseout(function(){ 
    //code for hide() submenu 
} 

我在iPad上測試這個和上面的代碼工作在iPad上(即在第一次輕觸精細,它觸發懸停事件,並顯示子菜單,僅在下水龍頭它觸發點擊事件或去目標鏈接)

由於某種原因(爲主菜單添加延遲),我不得不更新代碼如下;

$this.hover(
    function(){ // over 
     $this.data("timer", setTimeout(show, 500)); 
    }, 
    function(){ // out 
     $this.data("timer", setTimeout(hide, 500)); 
    } 
) 

所以問題如下; 在第一次點擊鏈接時,它立即讓用戶訪問目標網址(而不是提前點擊2次點擊)

請幫我解決這個問題。

回答

0

jQuery documentation表示$(selector).hover(handlerIn, handlerOut)只是使用$(selector).mouseenter(handlerIn).mouseleave(handlerOut)的快捷方式。

這意味着有綁定到對象沒有mouseover()/mouseout()事件和可能的移動瀏覽器不正確地處理它對於其他2個事件(即mouseenter()/mouseleave())。

嘗試更換您的代碼如下:

$this.mouseover(function(){ // over 
     $this.data("timer", setTimeout(show, 500)); 
    }).mouseout(function(){ // out 
     $this.data("timer", setTimeout(hide, 500)); 
    } 
) 

讓我知道,如果這樣做的伎倆。

+0

我試着更新到.mouseover和.mouseout ......你已經證明....但它仍然需要我的方式第一次點擊目標鏈接... – testndtv

+0

但是,您可以確認此代碼在PC上正常工作,對不對? –

+0

是的,它可以在桌面瀏覽器上完美運行......但在iPad上並不像預期的那樣... – testndtv

0

移動設備不支持鼠標懸停事件,也並不支持雙擊事件