前一段时间我问了这个问题Jquery tabs keep tab open that is subid in url你可以看到我找到了我的问题的答案,现在我试图改变它,这样每次你从一个标签更改为标签时它会改变tid子标签在标题中,此刻它只是将变量tid更改为tab_id的任何内容,因此当您按下时,可以打开您离开的特定选项卡,但这次我希望它更新标题中的tid为滚动选项卡。
如果此处未显示我之前答案的链接,则为我的代码
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.search);
if (results == null) return "";
else return decodeURIComponent(results[1].replace(/\+/g, " "));
}
$(document).ready(function () {
$(".tab_content").hide(); //Hide all content
var tabIndex = parseInt(getParameterByName('tid'), 10);
if (!tabIndex) tabIndex = 1;
$("ul.tabs li").eq(tabIndex - 1).addClass("active").show(); //Activate first tab
$(".tab_content").eq(tabIndex - 1).show(); //Show first tab content
//On Click Event
$("ul.tabs li").click(function () {
$("ul.tabs li").removeClass("active"); //Remove any "active" class
$(this).addClass("active"); //Add "active" class to selected tab
$(".tab_content").hide(); //Hide all tab content
var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
$(activeTab).fadeIn(); //Fade in the active content
return false;
});
});
如果您需要其他任何内容,请告诉我,如果这有点令人困惑,请告诉我。
编辑:换句话说,如果我在标题中添加?tid = 2,那么它将转到第二个标签,但是当您更改标签时它不会自动更新
答案 0 :(得分:5)
尝试在不重新加载页面的情况下使用Javascript更改当前URL的tid
参数将不起作用。你有几个选择:
更改脚本,使标签实际上是ID链接,如下所示:
<li><a href="#inbox" class="inbox"></a></li>
单击选项卡时,应将#outbox或#inbox附加到URL。然后,当用户单击后退按钮时,它应将它们带到上一个URL。您还必须更改JavaScript,以便在页面加载指向其中的标签的链接时(例如page.html #inmpbox),然后收件箱标签显示。
您的HTML中似乎已经有了相应的ID和链接,但出于某种原因,您正在为<li>
元素而不是<a>
元素添加点击功能。您应该使<a>
元素具有display:block
,以便它们填满您的<li>
元素,然后您可以将标签切换功能添加到它们中。这将使id能够附加到URL(即page.html #inbox)。
因此,请尝试将onclick功能添加到链接中:
$("ul.tabs li a").click(function () {
$("ul.tabs li").removeClass("active"); //Remove any "active" class
$(this).parent().addClass("active"); //Add "active" class to selected tab
$(".tab_content").hide(); //Hide all tab content
var activeTab = $(this).attr("href");
$(activeTab).fadeIn(); //Fade in the active content
});