2013-02-21 151 views
0

我已经看到了高和低的答案。我遇到的问题是我的选项卡有一定的样式特征需要保持不变。以下是我的工作页面:链接到特定的jquery选项卡

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

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

回答

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()。当你去像

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

然后:

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

它会加载具有标签

+0

我该如何将这个结合到我当前的页面编码中? – user2096415 2013-02-21 18:16:58

+0

如果你看看我原来的服务页面链接,你会看到我把你的编码合并到部分,还有什么需要做的?谢谢 – user2096415 2013-02-21 19:33:01

+0

由于我写了这个答案,我意识到我没有提到必须包含两个文件来处理URL参数。因此,这个答案可能不适合你。 – isherwood 2013-02-21 20:36:04

0

您可以使用URL#(井)和标签selected选项...

您也可以每次更改制表符时将散列添加到url:

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

我该如何将这个结合到我当前的页面编码中? – user2096415 2013-02-21 18:38:23

+1

你的页面已经有了一些启动标签的代码,比如'$('#tabs')。tabs({...})'。你只需要添加'selected:$('#tabs> ul> li> a [href ='+ window.location.hash +']')。index()'到那个方法调用中,就像我上面的例子。 – UpHelix 2013-02-21 18:52:47

相关问题