我可以在页面刷新时或当我离开页面时保持相同的jQuery选项卡吗?

我有一个基本的jQuery标签系统:

$(document).ready(function(){ $('#tabs div.jdiv').hide(); $('#tabs div.jdiv:first').fadeIn("slow"); $('#tabs ul.jdiv li:first').addClass('active'); $('#tabs ul.jdiv li a').click(function(){ $('#tabs ul.jdiv li').removeClass('active'); $(this).parent().addClass('active'); var currentTab = $(this).attr('href'); $('#tabs div.jdiv').hide(); $(currentTab).fadeIn("slow"); return false; }); }); 

等等….

我的问题是,我打算在其中一个页面中使用另一组jQuery选项卡,这不是问题,但是当他们点击链接或刷新页面时,是否可以保留在同一个选项卡上? 在父级或子级选项卡上?

谢谢!

您可以使用哈希标记来唯一标识每个标签,因此http://example.com/yourpage.html#current-points会将您带到current-points标签,以及http://example.com/yourpage.html#my-details将您带到my-details选项卡。 您可以通过分配location.hash来设置哈希值,当然您可以在页面加载时读取该哈希值。 这也具有巨大的优势,您的用户可以为他们想要的标签添加书签。 如果选项卡中有选项卡,则可以在哈希中使用路径(因此#first/foo将您带到第first选项卡及其foo子选项卡; #first #first/bar将您带到第first选项卡及其bar子选项卡)。

这是一个非常基本的例子(没有subtabs,但你明白了):

实时复制 | 直播源

HTML:

  
This is first
This is second
This is third

JavaScript的:

 jQuery(function($) { $("

").html("Loaded at " + new Date()).appendTo( document.body ); showTab(location.hash || "first"); $("#nav a").click(function() { var hash = this.getAttribute("href"); if (hash.substring(0, 1) === "#") { hash = hash.substring(1); } location.hash = hash; showTab(hash); return false; }); function showTab(hash) { $("div.tab").hide(); $("#tab-" + hash).show(); } });

或者(或结合),您可以在更改选项卡时设置cookie,并在页面加载时检查cookie以选择他们选择的最后一个选项卡。

为了在页面刷新后保持当前选项卡打开,我脑海中只有使用cookie的解决方案,我认为这是唯一的。

另一方面,如果您在网页中使用链接来刷新页面,则可以使用当时打开的选项卡向其添加锚点。

不容易。 刷新页面时会重新加载客户端脚本,并且所有更改都将被撤消,除非您将其存储在某个位置 – 可能作为URL参数?