2012-02-22 61 views
1

我有一个jQuery函数的onclick隐藏和显示的div:jQuery的上点击刷新

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

但是,每当页面被刷新的div我试图再次显示皮张,有没有办法让div在页面刷新后显示。

+0

隐藏div的初始状态? – Nate 2012-02-22 18:18:47

回答

3

如果您在使用环节,有href是这样#key,其中key是你可以识别并检测在页面加载(和重装),并自动显示相关div如果必要的。

如果您不在其他元素上使用链接而不是onclick,请改为添加location.href = "#key";

0

HTML是无状态的。

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

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时,页面可能会重新加载,但我认为它不会。