2013-06-21 86 views
2

我們在iPad上懸停狀態和CSS菜單存在常見問題。因爲它不識別懸停狀態,所以不允許進行選擇。iPad上的典型CSS菜單下拉懸停問題

我們已經嘗試了onClick="return true"等大部分常見解決方法,並使用jQuery創建了一個要複製的動態懸停類:hover和其他幾個,現在我已經移除它們以清除代碼。我相信我們錯過了一些顯而易見的東西。

任何幫助指出我在這個正確的方向將不勝感激。

鏈接:iar.suissamesser.com

回答

3

我假設你說的是菜單,對嗎?我在這種情況下做的是在我的css :hover選擇器中添加另一行。想法是這樣的,點擊後,向#nav添加一個類,如'btn1。這也需要你添加一個類到你的列表項。
CSS

#nav li:hover > ul, 
#nav.btn1 li.btn1 > ul { 
    display: block; 
} 

HTML

<ul class="clearfix btn1" id="nav"> 
    <li class="btn1"><a href="http://iar.suissamesser.com/about-us/campus">ABOUT US</a><br /> 
    <ul> 
     <li><a href="http://iar.suissamesser.com/about-us/campus">Campus</a></li> 
     <li><a href="http://iar.suissamesser.com/about-us/history-mission">History &amp; Mission</a></li> 
    </ul> 
    </li> 
    <li class="btn2"><a href="http://iar.suissamesser.com/parents/accreditation-and-licenses" >PARENTS</a><br /> 
    <ul> 
     <li><a href="http://iar.suissamesser.com/parents/accreditation-and-licenses">Accreditation and Licenses</a></li> 

JS

$("#nav > li > a").on("click", toggleNav); 
var toggleNav = function(evt){ 
    var clicked = $(this).parent().attr('class'); 
    $("#nav").removeClass("btn1 btn2 btn3 btn4 ...").addClass(clicked); 
    evt.preventDefault(); 
} 
+0

是的,這正是問題所在。非常感謝 - 我們會試試這個。 – jsuissa

+0

因此,每個頂級項目都需要它自己的命名類btn1,btn2等? – jsuissa

+0

正確。任何引發懸停狀態的東西,在這種情況下,所有的第一級'li's。然後,您可以在父'ul#nav'中切換選擇每個選項的類。如果您只針對現代瀏覽器,那麼只能使用移動設備,您還可以使用一些「第n個子」選擇器。 –

1

中包括一個頁腳文件下面的代碼

$('body').on('touchstart.dropdown', '.dropdown-menu', function (e) { 
e.stopPropagation(); 
} 
+0

我知道這是一個老問題,但我仍然遇到問題,非常感謝您的答案。 – jsuissa

0

這是一個晚很晚很晚respo但是。

你實際上不必使用任何類型的jquery或代碼,你只需要混淆或重寫在css中的ipad邏輯。

試試這個在你的CSS

.navigation li ul 
{ 
display:none; 
} 
.navigation li:hover ul 
{ 
display:block; 
} 
.navigation > li:hover 
{ 
background-color:#000; 
} 

按照我的理解,這將停止iPad的級聯到Li和你打的A HREF因爲你沒有對李一懸停,但是,當子菜單打開,a成爲下一個響應者,因爲li已經有懸浮狀態激活。

這是偶然發現的。

HTML會是這樣

<ul class="navigation"> 
<li><a href="http://www.google.com">test link</a> 
<ul> 
<li><a href="#">link</a></li> 
<li><a href="#">link</a></li> 
<li><a href="#">link</a></li> 
<li><a href="#">link</a></li> 
</ul> 
<li><a href="#www.google.com">test link</a> 
<li><a href="#www.google.com">test link</a> 
</ul>