2012-04-23 18 views
1

我有一個子菜單子導航的菜單,我試圖根據兒童的<ul>容器的盤旋將一個類追加到父母的孩子。JQuery兄弟姐妹選擇器沒有因爲CSS而追加類

這是我到目前爲止有:http://jsfiddle.net/2KhnX/15/

但你可以看到,類永遠不會被追加。如果我從HTML中剝離大部分CSS,但是離開我想追加的類,它會正常工作 - http://jsfiddle.net/2KhnX/21/

這讓我相信CSS會衝突或破壞JQuery嘗試的事件完成。我的猜測是因爲我使用CSS的parent > child規則,或者因爲.sub-menu的初始屬性爲display:none。我不確定,我只知道CSS會搞砸了,或者我沒有使用合適的選擇器,因爲的CSS。

任何有識之士將不勝感激,因爲我迷路了。

回答

2

這是有問題的CSS:

ul.menu li a:link, ul.menu li a:visited { 
     background: url('images/alink.jpg') top center repeat-x; 
} 
.parenthovered { 
    /* stuff */ 
} 

這些第一選擇具有比.parenthovered選擇較高specificity,因此正在優先。你可以用幾種方式解決這個問題。一種方式是要在第一組選擇的不太具體,並在第二個選擇更具體:

a:link, a:visited { 
     background: url('images/alink.jpg') top center repeat-x; 
} 

.menu a.parenthovered { 
    /* stuff */ 
} 

當然,你必須選擇選擇,對你的頁面的其餘部分意義.. 。

工作小提琴:http://jsfiddle.net/pabo/NR4yB/1/

另外,刪除這一行工作過:

background: url('images/alink.jpg') top center repeat-x; 
+0

哇...謝謝!非常詳細的解釋!我不能要求更好的答案。 – RCNeil 2012-04-23 18:59:41