jQuery實作選項卡功能。首先將介面搭建好。 有導航頭tab_menu,還有內容tab_box。 要實現的效果就是,點擊後,將對應的內容顯示出來,其他內容隱藏掉。 同時為了展現選取狀態,為選取的項目新增背景,以示區別。 這次,我自己寫了程式碼,先看html部分: 複製程式碼 程式碼如下: 程式碼如下: 體育 娛樂中 時事 體育 娛樂 娛樂 html中,需要一個大的div,裡面有兩個子div,一個作為導航頭tab_menu,一個作為內容體tab_box。 css程式碼負責佈局html內容。 css部分: 複製程式碼 程式碼如下: {gin{gin*{ :0;padding:0;}.tab{ width:240px; margin:50px; order> .tab_menu{ clear:both;}.tab_menu li{ float:left; //將導覽頭左飄 float:left; //將導航頭左飄 float:left; //將導覽頭左飄文字置中 list-style:none; //移除標記符號 background:#F1F1F1; //設定預設背景色 border:1px solid #89898 cursor:pointer; //滑鼠浮上之後,會有小手的標示出現 padding:1px 6px; //控制li的內部距離 border-bottom:none; }.tab_menu li.hover{ background:#DFDFDF;} background:#DFDFDF;} background:#DFDFDF;}.選項加背景與顏色 color:#FFF; background:#6D84B4;}.tab_box{ clear:ar:); 100px; //設定高度為100px border:1px solid #898989; //設定內容體的邊框樣式}.hide{//隱藏中所需的內容;}待佈局完成之後,進行jQuery的動作:複製代碼程式碼如下: <BR>$(function(){<BR> //1.點選時改變css屬性,移除先前的selected選項,新增新的selected選項<BR> //2.隱藏先前的div層,顯示對應到div層<BR> //為導覽中的li註冊點選事件<BR> var $div_li = $(".tab_menu ul li");<BR> $div_li.click(function(){<BR> $(this).addClass('selected').siblings().removeClass('selected');<BR> );<BR> //$("div.tab_box > div").eq(index).show().siblings().hide();<BR> <BR> if(text=='時事')<BR> {<BR> ) $('. ide ');<BR> }<BR> removeClass('hide').siblings ().addClass('hide');<BR> }<BR> if(text=='娛樂')<BR> s("娛樂")').removeClass ('hide').siblings().addClass('hide');<BR> }<BR> }).hover(function(){< > },function(){<BR> $(this).removeClass("hover");<BR> 🎜>這是我寫的jQuery程式碼,我的想法是,點擊選項卡時,加入selected樣式,同時移除兄弟選項卡的selected樣式。 <BR> <BR>再一個,如何才能觸發對應的tab_box中的內容的隱藏與顯示呢? <BR> <BR>我發現了他們有相對應的內容,就是選項頭為“實事”的對應的選項體也為“實事”,選項頭為“體育”的對應的選項提也為“體育”等。 <BR> <BR>我就想,先取得選項頭的內容,做出判斷,當它為不同的值時,就觸發不同的效果。 <BR> <BR>效果是實現了,可是漏洞很明顯,因為並不是所有的選項卡都是標題與內容體相對應。 再看下面的程式碼: 複製程式碼 程式碼如下: 程式碼如下:// $(function(){ var $div .click(function(){ $(this).addClass("selected") .siblings().removeClass("selected"); //去掉其它同輩元素的高亮 var index = $div_li.index(this); // 取得目前點選的元素在全部 > 🎜> 這裡的處理就特別的巧妙,它透過取得li的索引,對選項體進行處理。它巧妙的利用了一個隱藏的對應關係,就是索引值。 這樣即便選項頭與選項體內容不對應,一樣可以達到連動效果。 透過這次練習,我覺得,自己先動腦子想一想還是很好的。可以發現思路的差異,才能夠發現不足,知道差距。有時候連你的思路會更好呢!