Jquery点击刷新

时间:2012-02-22 18:16:56

标签: jquery html sql css ajax

我有一个jquery函数onclick隐藏并显示div:

function toggleInteractlogin(x)
{
 if(x=='register')
    {
        $('#login').hide();
        $('#register').show();
    }
    else
    {
        $('#register').hide();
        $('#login').show();
    }
}

然而,每当页面刷新时,div我试图再次显示隐藏,有没有办法在页面刷新后保持div显示。

3 个答案:

答案 0 :(得分:3)

如果您使用的是链接,请将href设为#key,其中key是您可以在页面加载(和重新加载)时识别和检测的内容,并且自动如有必要,请显示相关的div

如果您没有使用链接,而是在另一个元素上使用onclick,请改为添加location.href = "#key";

答案 1 :(得分:0)

HTML无国籍。

为了保存状态,您可以使用 cookies 。您可以将一个已关闭的值放入其中,当刷新时,您会看到cookie中显示的值并进行必要的更新。

答案 2 :(得分:0)

当页面刷新时,它会返回到原始状态。你必须设置一些浏览器在刷新时维护的东西,例如查询字符串,或者通过改变位置,如Kolink的建议。比你可以获得值来检查div是否应该被隐藏。我不确定隐藏的输入是否在页面刷新时保持该值,但这也可能是一种解决方案。 总之,您可以尝试在点击事件的查询字符串,哈希值或隐藏输入中设置值,并在页面加载时检查此值并隐藏/显示您的div。

示例:

function toggleInteractlogin(x)
{
 if(x=='register')
    {
        location.href = "#register";
        $('#login').hide();
        $('#register').show();
    }
    else
    {
        location.href = "#login";
        $('#register').hide();
        $('#login').show();
    }
}

并在加载事件的文档中添加它或将其放在任何函数之外的某个位置,以便在页面加载时执行。

toggleInteractlogin(location.hash.substring(location.hash.indexOf('#')+1));

我没有测试过这个。您可能需要在加载事件上的文档上调用另一个类似于toggleInteractlogin的函数,但不需要location.href = ...部分。我不确定,但是当您设置location.href时页面可能会再次重新加载,但我认为不会。