2012-08-22 156 views
0

TTI具有這樣的導航:Jquery的鼠標離開/鼠標移開和z軸折射率

<ul> 
    <li><a href='#'>Menu title 1</a> 
     <ul> 
     <li><a href='#'>Submenu title 1</a></li> 
     <li><a href='#'>Submenu title 2</a></li> 
     <li><a href='#'>Submenu title 3</a></li> 
     </ul> 
    </li> 
    <li><a href='#'>Menu title 2</a> 
     <ul> 
     <li><a href='#'>Submenu title 1</a></li> 
     <li><a href='#'>Submenu title 2</a></li> 
     <li><a href='#'>Submenu title 3</a></li> 
     </ul> 
    </li> 
... 

然後與jquery我設置的z-index爲懸停的菜單項的海格作爲子菜單和子菜單中元件褪色。因此,在子菜單上可以看到懸停的菜單項元素,並且所有其他菜單項都位於子菜單下。

現在我需要爲子菜單設置鼠標事件 - mouseleave =>隱藏子菜單。 問題:因爲菜單項現在在子菜單上 - 如果鼠標停留在子菜單上但是懸停菜單項1,jquery將它理解爲子菜單的mouseleave

對我來說這是非常普遍的問題,我總是使用某種「作弊「但我認爲必須有一個簡單的解決方案。

我沒有提供完整的源代碼,但我沒有要求你提供工作代碼,我只是需要一些想法。希望得到幫助,thx。

enter image description here

+2

你的Javascript代碼在哪裏? –

+0

會有幫助嗎?這是我對這個常見問題的解決方案:http://stackoverflow.com/questions/12024666/how-to-solve-this-overlapping-hover-issue/12024705#12024705 –

+0

dystroy,thx,但這是我稱爲「作弊「,我正在尋找一些簡單的解決方案。其他人:js非常簡單 - mouseenter - 顯示子菜單,mouseleave - 隱藏子菜單。其他的一切都是關於設置和取消設置可視化類。 – Sobakinet

回答

0

這裏是你可以用純CSS設置此一個辦法:

http://jsfiddle.net/mblase75/nr8xZ/

訣竅是:hover樣式應用到顯示這些內容只有當一個列表項懸停在子菜單。由於子菜單也是父列表項的一部分,因此只要鼠標懸停在子菜單上,它就會一直顯示。如果需要,您仍然可以爲鏈接和/或列表項添加額外的jQuery/JavaScript交互性。

+0

jep,我認爲這仍然是最好的方法,thx – Sobakinet

0

使用pureCSS菜單,這是更有效和JS免費。你可以使用這個編輯器在線生成你的pureCSS菜單。

http://purecssmenu.com/

而且這是解釋的純CSS菜單背後的基本導向。

http://meyerweb.com/eric/css/edge/menus/demo.html

如果你需要使用jQuery的解決方案,並與CSS特效,本教程會幫助你。

http://www.instantshift.com/2010/07/16/create-simple-dropdown-menu-using-jquery/

希望這有助於。

+0

我需要一些視覺效果,所以在這種情況下purecss不是我的東西,我認爲... – Sobakinet

+0

請檢查教程鏈接的修改答案。我已經使用這個教程在開始階段開發我的網站,現在我經常使用pureCSS菜單。希望這可以解決你的問題。 – Sutha