Использование вкладок пользовательского интерфейса jQuery. Как сделать так, чтобы одна из вкладок ссылалась на URL-адрес, а не загружала панель вкладок? - PullRequest
20 голосов
/ 17 августа 2010

Я использую вкладки пользовательского интерфейса 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>

Ответы [ 2 ]

27 голосов
/ 17 августа 2010

После вашего .tabs() звонка вы можете изменить поведение клика и href он изменился, вернув href обратно так:

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

Вы можете попробовать здесь.

Обновление: использование более новых версий jQuery:

Нет необходимости добавлять обработчик щелчков после отсоединения обработчика щелчков jQuery-UI по ссылкеВы хотите изменить.Это будет работать:

$("li.last a").unbind('click');
0 голосов
/ 17 августа 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...