使用jQuery选项卡时window.location.hash问题

时间:2011-10-05 16:02:29

标签: javascript jquery html

我在三个单独的标签页面上有三个表单。使用jQuery选项卡时,每个选项卡都是必要的唯一标识。

当我提交表单时,我会显示一条感谢信息,然后使用三个标签将页面重定向回初始页面。

在将位置设置回原始页面时,我希望它自动转到表单提交的标签页。

我尝试了以下内容:

setTimeout(setToDefault,2000); 

function setToDefault()
{  window.location = window.location.hash="tabs-28";  }

这会更改网址栏中的地址,但页面不会显示在任何位置。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当您运行该JavaScript时,您还不清楚是否已经在“原始”页面上,但是您尝试在没有网址的情况下设置window.location,所以我假设您已经在正确页面,并试图显示另一个标签:

如果您使用的是jQuery标签,请设置历史记录的哈希值,然后使用select()方法:

window.location.hash = "tabs-28";   // only returns 'tabs-28' back, which is
                                    // why setting it to window.location then
                                    // doesn't work

var index = ???;                    // ??? = whatever the tab index is
myTabElement.tabs("select", index)  // use the jQuery Tab library to switch to
                                    // the desired tab

如果您不在包含标签的原始页面上,请在“谢谢”页面上填写:

window.location.hash = "originalpage.html#tabs-28";

然后回到'原始'页面:

jQuery(function({ 
    if (window.location.hash != '') {
        var myTabElement = jQuery('#whateverTabElementIs'),
            index = ???; 
            // ??? = however you figure the index based on current window.location.hash
        myTabElement.tabs("select", index);
    } 
}));

OR 如果您想在首次初始化标签元素时

jQuery( "#whateverTabElementIs" ).tabs({ selected: ??? });
// ??? = however you figure the index based on current window.location.hash