2010-08-16 10 views
20

Estoy usando las pestañas jQuery UI para crear una sección de pestaña vertical de una página, y quiero que la última pestaña vertical se vincule a una URL en lugar de cargar un panel de pestañas.Usando jQuery UI Tabs. ¿Cómo puedo hacer que una de las pestañas se vincule a una URL en lugar de cargar un panel de pestañas?

¿Alguna sugerencia para la mejor manera de hacerlo? Puedo incluir otro elemento además de un LI en la lista, pero prefiero que el último li se comporte de manera diferente.

Gracias por cualquier ayuda.

Aquí es mi javascript:

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

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

Respuesta

25

Después de su .tabs() llamada que puede invertir el comportamiento de la pulsación y href cambió, poniendo el href espalda como esta:

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

You can give it a try here.

Actualizar: El uso de las nuevas versiones de jQuery:

no hay necesidad de añadir un controlador de clic una vez que se desvincula controlador de clic de jQuery-UI desde el enlace que desea cambiar. Esto funcionará:

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

Agradable. Eso es inteligente y funciona perfectamente. Gracias, Nick! – Michael

+3

Para que esto funcione con jQuery 1.8.2/jQuery UI 1.9.0, simplemente use '$ (" li.last a "). Unbind ('click')'. El ejemplo en la respuesta funcionó muy bien para las versiones anteriores de jQuery, pero por alguna razón el controlador de clics agregado estaba estropeando las cosas en la última versión. –

+0

Alex es absolutamente correcto, esta respuesta debe ser editada para incluir esta información. –

0

Puede cambiar el método de selección de las fichas:

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

y compara ui.tab.id (o ui.panel.id, basado en el margen de beneficio que está utilizando) para la identificación de la pestaña que desea enviar y use location.href=... para redirigir al usuario.

+0

¿dónde está esto documentado? http://api.jqueryui.com/tabs/ actualmente no dice nada sobre esto para las pestañas ... –

+1

Esto es algo que puede haber sido válido en 2010 cuando escribí esto, pero no me he mantenido con jQuery, entonces no estoy seguro Buena suerte. – partkyle

+0

gracias por la información, al final terminé haciendo mi propio script de "pestañas", porque tampoco quería el estilo, así que resolví 2 problemas en una ** breve ** soulution - http: // stackoverflow.com/a/39621077/1835470 –

Cuestiones relacionadas