I am using jQuery UI tabs to create a vertical tab section of a page, and want the last vertical tab to link out to a URL rather than load a tab panel.
Any suggestions for the best way to do this? I can stick another element besides an LI into the list, but would rather have the last li just behave differently.
Thanks for any help.
Here's my javascript:
// vtabs
$("#aboutprod-tabs").tabs(
{ fx: [{opacity:'toggle', duration:'normal'},
{opacity:'toggle', duration:'fast'}] })
.addClass('ui-tabs-vertical');
And 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>
You can change the select method of the tabs:
$( ".selector" ).tabs({ select: function(event, ui) { ... } });
and compare
ui.tab.id
(orui.panel.id
, based on the markup you are using) to the id of the tab you want to send, and uselocation.href=...
to redirect the user.After your
.tabs()
call you can reverse the click behavior andhref
it changed, putting thehref
back like this:You can give it a try here.
Update: Using newer versions of jQuery:
There is no need to add a click handler once you unbind jQuery-UI's click handler from the link you want to change. This will work: