2009-06-09 12 views
16

Mam problemy z próbą uruchomienia tej funkcji. Chciałbym załadować kartę automatycznie po załadowaniu strony. Użyłem następującego kodu.Automatyczne programowanie i ładowanie zakładki jquery

$tabs.tabs('select', 0); 

Jednak to, co się dzieje, to tylko wybieranie, a nie ładowanie (ta karta ładuje się przez ajax). Co ciekawe, gdy wybieram inną kartę, a następnie wracam do pierwszej karty ponownie, ładuje się dobrze.

+0

Aby dodać, gdy wykonuję następujące czynności, pierwsza karta ładuje się prawidłowo. $ tabs.tabs ("wybierz", 1); $ tabs.tabs ("wybierz", 0); Ale naprawdę chcę po prostu użyć $ tabs.tabs ("wybierz", 0); Jakieś pomysły? –

Odpowiedz

17

Czy próbowałeś podając wybraną kartę w momencie inicjalizacji:

var $tabs = $('.selector').tabs({ selected: 0 }); 

Po inicjalizacji, można to zrobić programowo wybrać zakładkę:

$tabs.tabs('option', 'selected', 0); 

EDIT: Działa to doskonale dla ja:

var $tabs = jQuery("#tabDiv > ul").tabs({ selected: null }); 
$tabs.tabs("select", 0); 
+0

Próbowałem wszystkich sugestii na tej stronie i żaden z nich nie działa.Możliwe, ponieważ mam zagnieżdżoną kartę. Zasadniczo karta nadrzędna wywołuje stronę, która ma więcej kart i chcę wybrać pierwszą kartę tej strony podrzędnych kart. To nie działa. Dopiero po wybraniu innej zakładki i wybraniu pierwszej karty programowo wydaje się działać. –

+0

Po to, aby wszyscy byli wolni. Wybiera pierwszą kartę, ale nie ładuje strony, którą powinien załadować przez ajax –

+0

Ok. Mam na myśli myśli. Daj mi znać, jeśli to ma sens. Czy to możliwe, że zakładki jquery domyślnie wybierają pierwszą kartę. Tak więc, kiedy programujesz go ponownie, nie ładujesz go? –

0

Nie zapomnij umieścić go wewnątrz $ (dokument) .ready (funkcja() {;}); zbudować.

Jestem pewien, że nie jest to przyczyną problemu, ale nie zaszkodzi upewnić się, że jQuery nie uruchamia się, dopóki wszystko nie zostanie skonfigurowane do obsługi.

+0

tak to jest wewnątrz $ (dokument) .ready –

0

Powinieneś zadzwonić:

$tabs.tabs('load', 0); 

po wybraniu go, aby załadować swoje dane.

+0

Myślałem, że wybór karty również ją wczytuje. –

+0

I tak spróbowałem i nie działa jeszcze nie działa. Dopiero po wybraniu dowolnej innej karty, a następnie powrocie, aby wybrać pierwszą kartę, wydaje się działać. Dziwne!!! –

2

Miałem ten sam problem wcześniej. Rozwiązaniem, które miałem, było wywołanie tabs() dwa razy; raz bez parametrów; raz z opcją wyboru:

Np.

$("#tabs").tabs(); 
$("#tabs").tabs('select', 2); 
20

Po prostu odpowiadam na to pytanie, aby uniknąć błędnych funkcji.

Większość odpowiedzi była poprawna w chwili pytania, ale większość z nich nie była używana w nowym interfejsie API.

spróbuj wpisać kod Jeśli korzystasz z nowego interfejsu API.

$(function() { 
    $("#tabs").tabs(); 
    $("#tabs").tabs("option", "active", 2); 
}); 

Więcej informacji Sprawdź poniższy link.

http://jqueryui.com/upgrade-guide/1.9/#deprecated-select-method

+0

Używam Twojego rozwiązania, jednak po prostu łamie moje karty. mam to jako funkcję $ (document) .ready (function() {$ (" #tabs") .tabs ("opcja", "aktywny", 2); }); ale pokazuje zawartość wszystkich kart jednocześnie – ShadowFlame

+0

Jaka jest twoja wersja jquery? –

+0

To będzie działać z jquery 1.9 lub nowszym –

0

Zakładając uzywasz demo ze strony kartach Jquery (http://jqueryui.com/tabs/#default). Możesz łatwo wybrać zakładkę klikając na kotwicę. Po prostu znajdź znacznik zakotwiczenia na podstawie jego nazwy zakładki, tak ...

$('a[href=#tabs-1]').click(); //selects the first tab 
Powiązane problemy