2010-03-31 236 views
8

JQuery UI选项卡由无序列表中的命名锚实现。当你将鼠标悬停在某个选项卡,你可以在浏览器的底部显示的链接看到:JQuery UI选项卡:如何直接导航到其他页面的选项卡?

http://mysite/product/3/#orders 

上面会例如,在“命令”选项卡。 JQuery显然拦截了对这个锚点的点击并且打开了标签。

但是,如果我为上面的链接添加书签或从网站中的其他位置链接到该链接,则该页面不会在特定选项卡上打开。

在标签初始化块中,我正在考虑放入一些代码,在URL中寻找一个命名锚点,如果找到,就对这些标签执行索引查找并调用它的选择。这意味着它仍然可以在JS关闭的情况下工作。

但是有没有更简单/更好/更好的方法?

+0

的JS标签控件不会与JS工作打开的,因为它做到这一点所有js – hunter 2010-03-31 17:15:53

+0

有趣 - 1.3.2。已经意味着升级一段时间,但我要通过“不破坏不修复它”的政策。听起来像我有一个很好的理由现在升级(虽然我不期望重新测试) – 2010-03-31 17:16:34

+0

@Hunter - 没有标签不会工作,但行为仍然是正确的。如果JS关闭,链接会将您带到页面的正确部分。 – 2010-03-31 17:17:35

回答

9

发现这个例子here

if(document.location.hash!='') { 
    //get the index from URL hash 
    tabSelect = document.location.hash.substr(1,document.location.hash.length); 
    $("#my-tabs").tabs('select',tabSelect-1); 
} 
+0

完美,我已经把它包装在一个辅助函数中,并从标签控件的加载事件中调用它,这要感谢 – 2010-03-31 17:31:55

+1

这个不做的一件事是在标签之间保留哈希信息。因此,如果我从同一页面内的www.page.com#1到www.page.com#2,它将不会更改标签页。 – 2011-08-19 23:19:51

+0

@Zach - 你去年在哪里? – hunter 2011-08-22 02:25:33

3

在1.8之前的jQuery UI版本(不包括),这几乎是你将不得不这样做。标签扩展(AFAIK)不知道要根据哪个锚进行初始化(当页面加载时)来切换,因此您必须手动执行该位(当然在就绪事件中)。

由于another answer表示,新版本的jQuery UI 1.8 supports bookmarking out of the box中的标签。

+0

谢谢,只是想确保我没有失去任何明显的东西。必须是常见的要求 – 2010-03-31 17:13:25

+0

FWIW他们在jQuery UI站点上的演示似乎在锚点上正确初始化。 – R0MANARMY 2010-03-31 17:15:39

+0

@ R0MANARMY - 我建议你添加一个答案,说“这在最新版本中的作品”。我可以标记你然后 – 2010-03-31 17:18:34

5

作为版本1.8的jQuery UI支持此功能。看到这里例如:

  1. Second tab active by default
  2. Third tab active by default
+0

谢谢,暂时与稳定的版本一起,但我会升级当我可以 – 2010-03-31 17:32:24

+0

顺便说一下,jQueryUI 1.8是目前的稳定版本(请参阅* *关于jQuery UI 1.7 * *)。 http://blog.jqueryui.com/2010/03/jquery-ui-18/ – R0MANARMY 2010-03-31 18:37:13

+0

很奇怪,他们还没有更新头版呢:最新(1.8:jQuery 1.4+)稳定版(1.7.2:jQuery 1.3+ ) - 我正在使用jquery 1.3,所以我会同时升级两者。 – 2010-03-31 18:46:31

0

我使用Session插件在自定义选项卡类

相关问题