2010-08-16 9 views
20

Korzystam z zakładek jQuery UI, aby utworzyć pionową zakładkę strony, i chcę, aby ostatnia zakładka w pionie łączyła się z adresem URL zamiast ładować panel z zakładkami.Używanie kart jQuery UI. Jak utworzyć jedną z kart linku do adresu URL, zamiast ładować panel z zakładkami?

Wszelkie sugestie, jak najlepiej to zrobić? Mogę umieścić na liście inny element oprócz LI, ale wolałbym, żeby ostatni li zachowywał się inaczej.

Dzięki za pomoc.

Oto mój javascript:

// vtabs 
    $("#aboutprod-tabs").tabs(
    { fx: [{opacity:'toggle', duration:'normal'}, 
    {opacity:'toggle', duration:'fast'}] }) 
    .addClass('ui-tabs-vertical'); 

i HTML

<div id="aboutprod-tabs"> 
    <ul> 
    <li><a href="#tabs-1">First</a></li> 
    <li><a href="#tabs-2">Second</a></li> 
    <li><a href="#tabs-3">3rd</a></li> 
    <li class="last"><a href="/products">Learn more...</a></li> 
    </ul> 
    <div id="tabs-1"> 
    Tab panel 1 
    </div> 
    <div id="tabs-2"> 
    Tab panel 2 
    </div> 
    <div id="tabs-3"> 
    Tab panel 3 
    </div> 
</div> 

Odpowiedz

25

Po Twój .tabs() nazwać można odwrócić zachowanie kliknij i href to zmienić, umieszczając href powrotem tak:

$("li.last a").unbind('click').click(function() { 
    this.href = $.data(this, 'href.tabs');​​​​ 
}); 

You can give it a try here.

Aktualizacja: Używanie nowsze wersje jQuery:

Nie ma potrzeby dodawania obsługi kliknij po rozpiąć jQuery UI kliknij obsługi z linku, który chcesz zmienić. To będzie działać:

$("li.last a").unbind('click'); 
+0

Nice. To sprytnie działa i działa idealnie. Dzięki, Nick! – Michael

+3

Aby to działało z jQuery 1.8.2/jQuery UI 1.9.0, po prostu użyj '$ (" li.last a "). Unbind (" kliknij ")'. Przykład w odpowiedzi zadziałał dobrze dla wcześniejszych wersji jQuery, ale z jakiegoś powodu dodany moduł obsługi kliknięć powodował problemy w najnowszej wersji. –

+0

Alex jest absolutnie poprawny, ta odpowiedź powinna zostać zmodyfikowana, aby zawierała te informacje. –

0

Można zmienić wybierz metodę zakładkach:

$(".selector").tabs({ select: function(event, ui) { ... } });

i porównać ui.tab.id (lub ui.panel.id, na podstawie znaczników używasz) do id kartę, którą chcesz wysłać, i użyj location.href=..., aby przekierować użytkownika.

+0

gdzie jest to udokumentowane? http://api.jqueryui.com/tabs/ obecnie nie mówi nic o tym dla kart ... –

+1

To jest coś, co mogło być ważne w 2010 roku, kiedy to pisałem, ale nie nadążyłem za jQuery, więc nie jestem pewien. Powodzenia. – partkyle

+0

dzięki za informację, w końcu skończyłem tworzyć własne "tabs" little-script, ponieważ nie chciałem też stylizacji, więc rozwiązałem 2 problemy w jednym ** krótkim ** soulution - http: // stackoverflow.com/a/39621077/1835470 –

Powiązane problemy