链接到特定的jquery选项卡

时间:2013-02-21 17:08:05

标签: jquery tabs jquery-ui-tabs

对于这个答案,我看起来很高很低。我遇到的问题是我的标签中存在某些需要保持原样的样式特征。以下是我正在处理的页面:

http://nextadagency.com/theta/services.html

我正在尝试为每个标签创建链接(在单独的页面上)。加载“服务”页面时,让它加载选定的选项卡,在顶部有一个唯一的#地址,并在页面顶部加载。出于某种原因,当我之前尝试链接到特定选项卡时,它会根据选项卡将页面加载到不同的区域。

2 个答案:

答案 0 :(得分:0)

为了避免默认的哈希行为(页面跳转),我改为使用URL参数。在您的情况下,这将导致,例如http://nextadagency.com/theta/services.html?tab=3

  $(function() {
    // update URL parameter and browser history on manual tab select
    $('#tabs').bind('tabsselect', function(event, ui) {
      var myTab = $(ui.tab).attr('href').replace('#', '');
      var myParam = '?tab=' + myTab;
      window.history.pushState('Object', 'Title', myParam);
    });

    // get 'tab' URL parameter and select tab
    var param = $(document).getUrlParam('activity');
    $('#tabs').tabs('select', param);
  });

这对你来说可能有些过分,但至少你需要停止默认的哈希行为,preventDefault()可以。

答案 1 :(得分:0)

您可以使用网址#(哈希)和标签selected选项:

$('#tabs').tabs({
   selected: $('#tabs > ul > li > a[href='+window.location.hash+']').index()
});

然后当你去的时候:

http://nextadagency.com/theta/services.html#tabs1

它将加载包含...的标签

您还可以在每次更改标签时将哈希添加到网址:

$('#tabs').tabs({
   select: function(e, ui){
      window.location.hash =  $(ui.tab).attr('href').replace(/\#/, '');
   }
});