2012-01-31 83 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)


主叫号码功能解决了这个问题。

相关问题