2012-05-20 174 views
0

我使用jquery選項卡,並試圖在每個分頁中,一切正常,但是,如果我點擊去下一頁說第二個選項卡,它會它很好,但將我傳輸到第一個標籤頁打開,所以你必須不斷點擊第二個標籤頁來查看新的內容。我的問題是,我怎樣才能做到這一點,以便當用戶點擊分頁中的下一頁時,內容會刷新,但同一個標籤頁仍處於打開狀態。jquery選項卡保持選項卡打開,這是subid在url

我如何納入我當前的代碼這一計劃是使用URL mail.php?page=2&tid=2

凡頁= 2是工作正常的分頁參考,但我想要的TID(標籤ID),使它所以這個標籤是開放的。

下面是標籤的JavaScript,你可能會認識到它

$(document).ready(function() { 

    //Default Action 
    $(".tab_content").hide(); //Hide all content 
    $("ul.tabs li:first").addClass("active").show(); //Activate first tab 
    $(".tab_content:first").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; 
    }); 

}); 

而對於標籤的HTML(不得不註釋掉的列表)

//<div id="tabsX"> <div id="tabContent"> <ul class="tabs"> 
    // <!--<li><a id="all" href="#all" class="all">All</a></li>--> 
    // <li><a href="#inbox" class="inbox"></a></li> 
    // <li><a href="#outbox" class="outbox"></a></li> 
    // <li><a href="#compose" class="compose"></a></li> 
    //<li><a href="#trash" class="trash"></a></li> 
    // 

    // </ul> 

和選項卡的HTML內容(僅顯示一個作爲沒有內容的示例,因爲將顯示太多)

<div id="inbox" class="tab_content"> 
     <div id="inbox_header" style="display:table-cell; vertical-align:middle"> 
     <!---content--->   

     </div><!---end inbox_content---> 



</div><!---end inbox---> 

我會很感激的任何幫助,因爲我似乎無法找到任何解決方案,爲自己

回答

2

您可以使用下面的函數從heretid PARAM在JavaScript

然後改變像你的代碼這

var tabIndex = parseInt(getParameterByName('tid'),10); 
$("ul.tabs li").eq(tabIndex - 1).addClass("active").show(); //Activate first tab 
$(".tab_content").eq(tabIndex - 1).show(); //Show first tab content 

所以你完全js代碼將是

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() { 

    //Default Action 
    $(".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 
    // add you onlick code here 


)}; 

我在eq中加入-1,因爲它是0-based。在這裏檢查文檔$.eq

+0

好的很好,但是快速的問題你說改變代碼,你的意思是完全用你提供的代碼替換整個代碼,或者只是改變不同的部分? – Arken

+0

用完整的代碼稍候更新答案。 –

+0

它工作嗎?讓我知道 –

0

我會建議看一下jquery選項卡的文檔。您可以使用多種選項。 cookie的選項:

$(".selector").tabs({ cookie: { expires: 30 } }); 

存儲在cookie中的最新選擇的選項卡。如果未定義所選選項,則Cookie將用於確定最初選定的選項卡。需要cookie插件,該插件也可以在下載構建器的開發包>外部文件夾中找到。該對象需要cookie插件期望的形式的鍵/值對作爲選項。可用選項(示例):{expires:7,path:'/',domain:'jquery.com',secure:true}。由於jQuery UI 1.7也可以通過name屬性來定義正在使用的cookie名稱。

此外,您可以使用選定的選項。這讓你指定要在初始化時打開什麼標籤:

$(".selector").tabs({ selected: 3 }); 

第三個選項是通過Ajax調用加載選項卡的內容來代替。

+0

我應該補充說,需要提供「選擇」選項中的3。您將問題標記爲具有PHP,因此您可以用<?php echo isset($ _ GET ['tid'])?$ _ GET ['tid']替換3: - 1; ?> – Recognizer

相關問題