通过选项卡更新subid

时间:2012-06-30 00:08:41

标签: php javascript jquery mysql ajax

前一段时间我问了这个问题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,那么它将转到第二个标签,但是当您更改标签时它不会自动更新

1 个答案:

答案 0 :(得分:5)

尝试在不重新加载页面的情况下使用Javascript更改当前URL的tid参数将不起作用。你有几个选择:

  1. 使标签实际上只是指向新网页的链接,而不是使用JavaScript。
  2. 更改脚本,使标签实际上是ID链接,如下所示:

    <li><a href="#inbox" class="inbox"></a></li>

  3. 单击选项卡时,应将#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
        });