2011-05-04 36 views
1

在這個例子中,我想「活動」類應用到活動鏈接的父:父()下頁搶奪兄弟姐妹以及

http://socalragdolls.com/jquerytest.html

<div id="topnav"> 
    <ul id="mainmenu"> 
     <li class="top" id="home"><a href="/">Home</a></li> 
     <li class="top"><a href="kittens">Kittens</a> 
      <ul id="mainmenu"> 
       <li><a href="caring">Caring for a Ragdoll</a></li> 
       <li><a href="kittens">Current Litter</a></li> 
       <li><a href="jquerytest.html">Future Litters</a></li> 
       <li><a href="parents">Parents</a></li> 
       <li><a href="pricing">Pricing</a></li> 
       <li><a href="reserving">Reserving a Kitten</a></li> 
      </ul> 
     </li> 
     <li><a href="about">About Us</a> 
      <ul> 
       <li><a href="about">Cattery</a></li> 
       <li><a href="proprietor">Proprietor</a></li> 
       <li><a href="testimonials">Testimonials</a></li> 
      </ul> 
     </li> 
     <li class="last"><a href="contact.html">Contact Us</a></li> 
    </ul> 
</div> 

從本質上講,當一個訪問者在頁面上(jquerytest.html)時,我希望父李「小貓」也是活躍的。

下面是當前的jQuery:

<script> 
    $("#topnav a").each(function() { 
     if(this.href == window.location || this.href == document.location.protocol + "//" + window.location.hostname + window.location.pathname) 
     $(this).parent('li').addClass('active'); 
    }); 
</script> 

<script> 
    $(document).ready(function() { 
     $('li.active').parent().parent().addClass('active'); 
    }); 
</script> 

正如你所看到的,這凸顯了孩子。主動力的所有兄弟姐妹的父母,這是我絕對不想一起。

任何想法?

+0

我會檢查你的每個塊中的if語句是否正在返回你所期望的。另外,我不相信沒有{}的語句;特別是在JS中。我會嘗試添加大括號。 – Jon 2011-05-04 20:37:01

回答

0

好像你正在申請的風格,以全ul,這就是爲什麼它「改變」其所有的孩子們......你可能需要使用CSS上ulbackground-color復位。

1

它不會選擇所有東西..

它只選擇父項。問題是與它。主動款式全li你的CSS規則(和自ulli的孩子就看起來像所有的兄弟姐妹都選擇)。

剛剛創建.active ul{background-color:white;}


CSS規則如果問題出在紅色邊框,然後不是背景色的罪魁禍首就是這部分

$(document).ready(function() { 
    $('li ul li.active').siblings().css('border', '1px solid red'); 
    $('li ul li.active').siblings().css('background-color', '#333'); 
}); 

但就是太明顯成爲真正的問題..

0

我認爲你的第二個腳本應該是這樣的:

編輯

$('li.active').closest("li").find("a").addClass('active'); 

所以用這個,我們只是active類添加到錨。發生的事情是你將課程加入到整個課程中,其中包括兒童。

希望這有助於 乾杯

0

它實際上並不突出的兄弟姐妹,這是突出父li和它裏面的所有內容。

我會將活動類放在小貓鏈接上,或者您可能會向父級添加不同的類名,例如active-trail

0

正如保羅所說,父母的整個li有背景,它封裝了孩子ul。避免這種情況的一種方法是使用僅與父鏈接一樣高的背景圖像,並且不在y軸上重複。