2012-01-31 11 views
7

Mam dokładnie ten sam problem, co opisany tutaj: http://bugs.jqueryui.com/ticket/7930. Problem polega na tym, że opiekun nie może go odtworzyć, więc bilet jest zamknięty. Mój kod wygląda następująco:Preselekcję zakładki obsługującej ajax w zakładkach jquery UI

<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> 

To tworzy wypustki z identyfikatorów: # UI-tabs-1, # UI-tabs-2, # UI-tabs-3, # UI-tabs-4. Uzyskuję dostęp do strony za pomocą adresu URL: http://server/Admin?tab=1. Wybrana jest odpowiednia karta (druga z raportami), ale wywołanie ajaxa następuje w href poprzedniej zakładki (role użytkownika). Powoduje wyświetlenie pustej zawartości karty. Czy wiesz, jak to naprawić?

+0

czy można dodać kod odpowiedzialny za wywołanie ajax? – Rafay

+0

Jest to automatycznie wykonywane przez karty interfejsu użytkownika. Jeśli podaję elementy na liście UL, to pobiera ona href i wywołuje automatycznie wywołania ajax przy zmianie kart. Nie musisz pisać kodu, aby osiągnąć tę funkcję. –

+0

Czy używasz najnowszej wersji jquery ui (1.8.17)? –

Odpowiedz

5

użyłem:

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

Ale tabIndex był string (ja go otrzymać z adresu URL lub adres URL hash), więc spowodowało np

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

W tym przypadku można zaobserwować takie nieoczekiwane zachowanie.
wywołanie funkcji Number na TabIndex

tabIndex = Number(tabIndex)

rozwiązuje ten problem.