在Web開發中,選項卡是一個常用的UI組件。但是,當我們在頁面中使用多個選項卡時,如何讓它們同步顯示,又不刷新頁面?這時,可以通過使用錨來實現選項卡的切換,而jQuery可以非常方便地完成這個操作。
下面我們先來看一下HTML結構,假設我們有三個選項卡:
<div class="tabs"> <ul class="tab-navs"> <li><a href="#tab1">選項卡1</a></li> <li><a href="#tab2">選項卡2</a></li> <li><a href="#tab3">選項卡3</a></li> </ul> <div class="tab-contents"> <div class="tab-panel" id="tab1">此處是選項卡1的內容</div> <div class="tab-panel" id="tab2">此處是選項卡2的內容</div> <div class="tab-panel" id="tab3">此處是選項卡3的內容</div> </div> </div>
每個選項卡的內容用<div>標簽包裹,并且都有一個唯一的ID。而選項卡的鏈接用<a>標簽包裹,并且鏈接的href屬性指向對應的選項卡ID。
接下來,我們使用jQuery來實現選項卡的切換效果:
$(document).ready(function() { // 初始狀態 $('.tab-panel').hide(); $('.tab-panel:first').show(); $('.tab-navs li:first').addClass('active'); // 點擊鏈接 $('.tab-navs a').click(function(){ $('.tab-navs li').removeClass('active'); $(this).parent().addClass('active'); var currentTab = $(this).attr('href'); $('.tab-panel').hide(); $(currentTab).show(); return false; }); });
首先,在頁面加載后,我們需要設置初始狀態,隱藏所有選項卡的內容,只顯示第一個選項卡,并且給第一個選項卡的鏈接添加一個active類,以示當前選項卡是激活狀態。
然后,我們給所有選項卡鏈接添加一個點擊事件,當用戶點擊鏈接時,先將所有選項卡的鏈接的active類刪除,再給當前鏈接的父級元素(即對應選項卡的li標簽)添加active類,然后獲取當前鏈接的href屬性(對應選項卡的ID),將所有選項卡的內容隱藏,只顯示當前選項卡的內容,最后,需要返回false,以阻止鏈接的默認行為(即跳轉頁面)。
通過以上操作,我們就可以通過錨來實現選項卡的切換了。
上一篇jquery遍歷上一級