2010-08-16 13 views
20

Sto utilizzando le schede dell'interfaccia utente di jQuery per creare una sezione di tabulazione verticale di una pagina e voglio che l'ultima scheda verticale sia collegata a un URL anziché caricare un pannello a schede.Utilizzo delle schede dell'interfaccia utente jQuery. Come faccio a fare in modo che una delle schede si colleghi a un URL invece di caricare un pannello a schede?

Qualche suggerimento per il modo migliore per farlo? Posso inserire un altro elemento oltre a una LI nell'elenco, ma preferisco che l'ultimo si comporti in modo diverso.

Grazie per qualsiasi aiuto.

Ecco il mio javascript:

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

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

risposta

25

Dopo il .tabs() chiamata, è possibile invertire il comportamento del clic e href è cambiato, mettendo il href schiena come questo:

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

You can give it a try here.

Aggiornamento: Usando le nuove versioni di jQuery:

non c'è bisogno di aggiungere un gestore di clic una volta che si UNBIND gestore di clic di jQuery UI-dal collegamento che si desidera modificare. Ciò funzionerà:

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

Bello. È intelligente e funziona perfettamente. Grazie, Nick! – Michael

+3

Per farlo funzionare con jQuery 1.8.2/jQuery UI 1.9.0, basta usare '$ (" li.last a "). Unbind ('click')'. L'esempio nella risposta ha funzionato alla perfezione con le versioni precedenti di jQuery, ma per qualche motivo il gestore dei clic aggiunto ha creato problemi nell'ultima versione. –

+0

Alex è assolutamente corretto, questa risposta dovrebbe essere modificata per includere queste informazioni. –

0

È possibile modificare il metodo di selezione delle schede:

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

e confrontare ui.tab.id (o ui.panel.id, sulla base del margine di profitto che si sta utilizzando) per l'id del scheda che si desidera inviare e utilizzare location.href=... per reindirizzare l'utente.

+0

dove è documentato? http://api.jqueryui.com/tabs/ attualmente non dice nulla su questo per le schede ... –

+1

Questo è qualcosa che potrebbe essere stato valido nel 2010 quando ho scritto questo, ma non ho tenuto il passo con jQuery, quindi non sono sicuro. In bocca al lupo. – partkyle

+0

grazie per le informazioni, alla fine ho finito per creare la mia piccola sceneggiatura, perché anche io non volevo lo stile, quindi ho risolto 2 problemi in uno ** corto ** soulution - http: // stackoverflow.com/a/39621077/1835470 –

Problemi correlati