2010-03-05 73 views
3

我對JQuery相當陌生,出於某種原因,我無法使當前選定的選項卡正確突出顯示,所以選擇時它應該是不同的顏色。有人能幫我解決這個問題嗎?JQuery選擇標籤問題?

這裏是JQuery。

$(document).ready(function() { 

    //When page loads... 
    $(".form-content").hide(); //Hide all content 
    $("#menu ul li:first").addClass("selected-link").show(); //Activate first tab 
    $(".form-content:first").show(); //Show first tab content 

    //On Click Event 
    $("#menu ul li").click(function() { 

     $("#menu ul li").removeClass("selected-link"); //Remove any "selected-link" class 
     $(this).addClass("selected-link"); //Add "selected-link" class to selected tab 
     $(".form-content").hide(); //Hide all tab content 

     var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the selected-link tab + content 
     $(activeTab).fadeIn(); //Fade in the selected-link ID content 
     return false; 
    }); 

}); 

這是CSS。

#container { 
    width: 1024px; 
    background: blue; 
    padding: 0px; 
    margin: 0px; 
    float: left; 
} 

#menu { 
    padding: 0px; 
    margin: 0px; 
} 


#menu ul { 
    width: 1024px; 
    padding: 0px; 
    margin: 0px; 
    margin-top: 25px; 
    border: 0px; 
    float: left; 
    text-align: left; 
    list-style-type: none; 
} 

#menu li { 
    margin: 0px; 
    margin-right: 1px; 
    padding: 0px; 
    float: left; 
    border: 0px; 
    width: auto; 
} 

#menu a:link, #menu a:visited { 
    padding: 9px 9px; 
    float: left; 
    color: white; 
    text-decoration: none; 
    background: black; 
    width: auto; 
} 

#menu a.selected-link, #menu a:hover { 
    background: blue; 
    color: white; 
} 

這裏是HTML。

<div id="body-content"> 

     <div id="menu"> 
      <ul> 
       <li><a href="#tab-1" title="">tab 1</a></li> 
       <li><a href="#tab-2" title="">tab 2</a></li> 
       <li><a href="#tab-3" title="">tab 3</a></li> 
       <li><a href="#tab-4" title="">tab 4</a></li> 
       <li><a href="#tab-5" title="">tab 5</a></li> 
      </ul> 
     </div> 


     <div id="container"> 

      <div id="tab-1" class="form-content"> 
       <p>tab 1</p> 
      </div> 

      <div id="tab-2" class="form-content"> 
       <p>tab 2</p> 
      </div> 

      <div id="tab-3" class="form-content"> 
       <p>tab 3</p> 
      </div> 

      <div id="tab-4" class="form-content"> 
       <p>tab 4</p> 
      </div> 

      <div id="tab-5" class="form-content"> 
       <p>tab 5</p> 
      </div>  

     </div> 

    <div> 

回答

0

編輯

$(document).ready(function() { 

    //When page loads... 
    $(".form-content").hide(); //Hide all content 
    var firstMenu = $("#menu ul li:first"); 
    firstMenu.show(); 
    firstMenu.find("a").addClass("selected-link"); //Activate first tab 
    $(".form-content:first").show(); //Show first tab content 

    //On Click Event 
    $("#menu ul li").click(function() { 

     $("#menu ul li a").removeClass("selected-link"); //Remove any "selected-link" class 
     $(this).find("a").addClass("selected-link"); //Add "selected-link" class to selected tab 
     $(".form-content").hide(); //Hide all tab content 

     var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the selected-link tab + content 
     $(activeTab).fadeIn(); //Fade in the selected-link ID content 
     return false; 
    }); 

}); 

+0

這完全不起作用:( – NeedHeLp 2010-03-05 06:58:11

+0

即使你錯過了一個''',這段代碼也能正常工作,但我知道足以解決它,謝謝:) – NeedHeLp 2010-03-05 07:04:26

+0

修正了錯字。 – rahul 2010-03-05 07:06:39

1

嘗試改變這些行:

$("#menu ul li").removeClass("selected-link"); 
$(this).addClass("selected-link"); 

要:

$("#menu ul li").find('a').removeClass("selected-link"); 
$(this).find('a').addClass("selected-link"); 

您要添加類linkli

+0

這並不工作:( – NeedHeLp 2010-03-05 06:54:33

+0

它使所有選定的標籤高亮顯示。 – NeedHeLp 2010-03-05 06:56:20

+0

那是因爲你申請removeClass到'li'而不是' a'。 – rahul 2010-03-05 06:57:39