2012-01-31 125 views
7

我的問題與此處所述的完全相同:http://bugs.jqueryui.com/ticket/7930。問題是維護人員無法複製它,所以票證關閉。我的代碼看起來如下:在jquery UI選項卡中預先選中啓用ajax的選項卡

<script type="text/javascript"> 
    $(document).ready(function() { 
     // assigns the value of a GET parameter called tab to tabIndex 
     var tabIndex = getUrlVars()['tab']; 

     if (isNaN(tabIndex)) { 
      tabIndex = 0; 
     } 

     // initializes tabs and selects the one provided in tabIndex (default: 0) 
     $('div#tabs').tabs({ ajaxOptions: { cache: false}, selected: tabIndex }); 
    }); 
</script> 
<div id="tabs"> 
    <ul> 
     <li>@Html.ActionLink("User roles", "Roles", "Admin", New With {.rand = DateTime.Now.Ticks}, Nothing)</li> 
     <li>@Html.ActionLink("Report templates", "Reports", "Admin", New With {.rand = DateTime.Now.Ticks}, Nothing)</li> 
     <li>@Html.ActionLink("Blabla", "2", "Admin")</li> 
     <li>@Html.ActionLink("Blabla2", "3", "Admin")</li> 
    </ul> 
</div> 

這將創建與標籤的ID:#用戶界面的選項卡-1,#UI的標籤-2,#UI的標籤-3,#UI的標籤,4。我通過網址訪問該頁面:http://server/Admin?tab=1。選擇適當的選項卡(第二個選項包含報告),但是ajax調用是在前一個選項卡(用戶角色)的href中進行的。它會導致顯示一個空的標籤內容。你知道如何解決它嗎?

+0

你可以添加負責Ajax調用的代碼嗎? – Rafay 2012-01-31 11:21:53

+0

它由UI選項卡自動完成。如果我在UL列表中提供了一個元素,那麼它將使用hrefs並在更改選項卡時自動進行ajax調用。您不需要編寫代碼來實現此功能。 – 2012-01-31 11:52:48

+0

你使用的是最新版本的jQuery UI(1.8.17)嗎? – 2012-01-31 13:16:35

回答

5

我用:

$('#tabs').tabs({ selected: tabIndex });

不過的tabIndex是一個字符串(我是從網址或網址哈希獲得它),因此它造成了如:

$('#tabs').tabs({ selected: "2" });

在這種情況下,你可以觀察到這種意外的行爲。上的tabIndex

tabIndex = Number(tabIndex)


主叫號碼功能解決了這個問題。

相關問題