2010-08-16 1 views
20

Я использую вкладки пользовательского интерфейса jQuery для создания вертикальной вкладки страницы и хочу, чтобы последняя вертикальная вкладка привязывалась к URL-адресу, а не загружала панель вкладок.Использование вкладок пользовательского интерфейса jQuery. Как мне сделать одну из вкладок ссылкой на URL, а не загружать вкладку?

Любые предложения по наилучшему способу сделать это? Я могу вставить еще один элемент, кроме LI, в список, но предпочла бы, чтобы последний li вел себя иначе.

Спасибо за любую помощь.

Вот мой JavaScript:

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

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

ответ

25

После вашего .tabs() звонка можно полностью изменить поведение щелчка и href он изменил, поставив href назад, как это:

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

You can give it a try here.

Update: Используя новые версии JQuery:

Там нет никакой необходимости, чтобы добавить обработчик щелчка, когда вы отвязать обработчик нажатий JQuery-UI от ссылки, которую вы хотите изменить. Это будет работать:

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

Ницца. Это умно и прекрасно работает. Спасибо, Ник! – Michael

+3

Чтобы сделать эту работу с jQuery 1.8.2/jQuery UI 1.9.0, просто используйте '$ (" li.last a "). Unbind ('click')'. Пример в ответе отлично подойдет для более ранних версий jQuery, но по какой-то причине добавленный обработчик кликов стал бесполезным в последней версии. –

+0

Алекс абсолютно прав, этот ответ нужно отредактировать, чтобы включить эту информацию. –

0

Вы можете изменить выбор метода закладок:

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

и сравнить ui.tab.id (или ui.panel.id, основанную на разметке, которую вы используете) к идентификатору которую вы хотите отправить, и используйте location.href=... для перенаправления пользователя.

+0

где это документировано? http://api.jqueryui.com/tabs/ в настоящее время ничего не говорит об этом для вкладок ... –

+1

Это то, что, возможно, было действительным в 2010 году, когда я это написал, но я не поддерживал работу с jQuery, поэтому я не уверен. Удачи. – partkyle

+0

спасибо за информацию, в конце концов я закончил создание собственных «вкладок» маленького скрипта, потому что мне тоже не хотелось стилизовать, поэтому я решил 2 проблемы в одном ** коротком ** soulution - http: // stackoverflow.com/a/39621077/1835470 –