2012-06-30 87 views
4

前一段時間我問這個問題Jquery tabs keep tab open that is subid in url,你可以看到我發現了一個答案我的問題,現在我試圖改變它,以便每次你從標籤更改選項卡它改變tid subid在頭文件中,此時它只是將變量tid更改爲tab_id所在的位置,以便當您按下後,可以打開您離開的特定選項卡,但這次我希望它將標頭中的tid更新爲您滾動選項卡。更新subid通過標籤

在情況下,鏈接到我以前的答案並不在這裏顯示是我的代碼

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
    var regexS = "[\\?&]" + name + "=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.search); 
    if (results == null) return ""; 
    else return decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 
$(document).ready(function() { 
    $(".tab_content").hide(); //Hide all content 
    var tabIndex = parseInt(getParameterByName('tid'), 10); 
    if (!tabIndex) tabIndex = 1; 
    $("ul.tabs li").eq(tabIndex - 1).addClass("active").show(); //Activate first tab 
    $(".tab_content").eq(tabIndex - 1).show(); //Show first tab content 
    //On Click Event 
    $("ul.tabs li").click(function() { 
     $("ul.tabs li").removeClass("active"); //Remove any "active" class 
     $(this).addClass("active"); //Add "active" class to selected tab 
     $(".tab_content").hide(); //Hide all tab content 
     var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content 
     $(activeTab).fadeIn(); //Fade in the active content 
     return false; 
    }); 
}); 

讓我知道,如果你有什麼事和遺憾,如果這是一個有點混亂。

編輯:?在此刻換句話說,如果我的頭添加TID = 2,那麼它會去第二個選項卡,但是當您更改標籤

+0

誰能幫助我? – Arken

+0

你能證明這一點嗎?有鏈接? 「我試圖改變它,以便每次你從標籤頁到標籤頁改變它改變標題中的tid子標題」 - 什麼tid subid?什麼標題?你是什​​麼意思「在標題」?你在談論改變瀏覽器的網址嗎? –

+0

嗨,是的tid是每個標籤的「tab_id」,所以如果你把URL tid = 2,那麼它會到第二個標籤。而對於標題抱歉,是的,我的意思是網址 – Arken

回答

5

試圖改變它不會自動更新tid使用Javascript而不重新加載頁面的當前URL的參數將不起作用。你有幾個選擇:

  1. 使選項卡實際上只是一個鏈接到一個新的頁面,而不是使用JavaScript。
  2. 改變你的腳本,這樣的標籤實際上是ID鏈接,就像這樣:

    <li><a href="#inbox" class="inbox"></a></li>

當你點擊一個選項卡,#outbox或#inbox應被追加到URL爲你。然後,當用戶點擊後退按鈕時,應該將它們帶到前一個URL。您還必須更改JavaScript,以便在頁面加載時帶有指向其中的選項卡的鏈接(即page.html#收件箱),然後收件箱選項卡顯示。

看起來您已經在HTML中擁有適當的ID和鏈接,但出於某種原因,您正在爲您的<li>元素而不是您的<a>元素添加點擊功能。你應該讓你的<a>元素有display:block,這樣他們就可以填滿你的<li>元素,然後你可以添加製表符切換功能。這將使id被附加到URL(即page.html#收件箱)。

所以嘗試添加的onclick功能,你的鏈接,而不是:

$("ul.tabs li a").click(function() { 
     $("ul.tabs li").removeClass("active"); //Remove any "active" class 
     $(this).parent().addClass("active"); //Add "active" class to selected tab 
     $(".tab_content").hide(); //Hide all tab content 
     var activeTab = $(this).attr("href"); 
     $(activeTab).fadeIn(); //Fade in the active content 
    }); 
+0

這就是你想要做的。給予好評! – Jan