2014-11-14 122 views
1

我在一個站點上的很多不同地方有很多懸停事件。具體而言,它們都是mouseentermouseleave functions.Now在移動設備上單擊事件或touch事件(我認爲他們被稱爲)觸發mouseenter,但不是mouseleave,我如何觸發功能的其他部分?這是問題的一部分。將jquery懸停事件綁定到移動點擊事件

這裏是一個典型的功能的模樣:

function hover() { 
    $('#my_div).mouseenter(fucntion(){ 
    $('my_selector#1',$this).show(); 
    }).mouseleave(function(){ 
    $('my_selector#1',$this).hide(); 
    }); 
} 
hover(); 

另一部分是,在一些地方有mouse-enter-leave事件也有click事件。 (例如:mouseenter一個按鈕顯示[上面的例子],然後你可以點擊)。 在移動設備上查看時,touch事件同時觸發了mouseenterclick。如何解決此問題以便一個touch觸發mouseenter,然後觸發click?點擊

例如:

function click() { 
    $('#my_div my_selector#1').click(function(){ 
    //something happens 
    }); 
click(); 

回答

2

我會說,對於第一種情況,有沒有「偉大」的解決方案。 如果懸停內容阻擋其他重要內容,則應該改變移動設計以使懸停工作更好。

對於第二種情況,您可以使用元素可見性切換,點擊應該做些什麼。

例如:

function hover() { 
    if($('element').is(':visiblie')){ 
     click(); 
    }else{ 
     $('element').show(); 
    } 
} 

function click(){ 
    doStuff(); 
} 
+0

給予好評爲不是暗示劑檢測,並提供一個可行的解決方案:) – 2014-11-14 14:54:31