2011-12-22 71 views
0

使用下面的代码我正在淡入一些div,但是当我重新加载页面时,divs再次可见。我不希望这种情况发生。我需要的是,如果用户点击后退按钮或主页链接,它应该回到原始格式,否则当重新加载页面时div必须隐藏。jquery fadeout不是解决方案

$(document).ready(function() { 
    $("#prodoneid").click(function() { 
     $("#sliderid, .prodcls").fadeOut(250); 
    }); 
}); 
下面

是我的HTML代码

<div id="prodoneid" class="prodcls"> <img src="images/zara/thumbnails/1.png" alt="ZARA"/> </div> 

    <div id="prodtwoid" class="prodcls"> 
    <img src="images/zara/thumbnails/2.png" alt="ZARA"/> 
    </div> 

    <div id="prodthreeid" class="prodcls"> 
    <img src="images/puma/thumbnails/1.png" alt="PUMA"/> 
    </div> 

    <div id="prodfourid" class="prodcls"> 
    <img src="images/hermes/thumbnails/1.png" alt="HERMES"/> 
    </div> 

</div> 
+0

JS + cookie可能能够帮助你在那里 – Damp 2011-12-22 15:58:40

+1

使用cookie。 om nom nom http://stackoverflow.com/questions/6524277/when-link-clicked-make-a-div-appear-and-save-the-hide-show-options-in-cookie – 2011-12-22 15:59:07

回答

5

你将不得不拯救的事实的div隐藏无论是在cookie或HTML5本地存储(仅适用于较新的浏览器)和过程,保存加载页面时的信息,以便将页面恢复到之前保存的确切状态。浏览器不会为你做。

网页在客户端通常是无状态的。他们应该每次都从服务器加载相同的内容,除非您自己设计一些客户端状态。所以,如果你想创建一些客户端状态,你必须将该状态存储在服务器上(通常使用ajax),并在该特定查看器再次加载时将该状态重新放入页面中。或者,您必须将本地状态保存在本地浏览器中(通常使用Cookie或HTML5本地存储),在页面加载时从其中检索并对其执行操作以使页面处于所需状态。

下面是使用cookie为此一些伪代码:

$(document).ready(function() { 
    /* read the cookie "sliderHidden" and if it's is set to 1, 
     then: */ 
    $("#sliderid, .prodcls").hide(); 


    $("#prodoneid").click(function() { 
     $("#sliderid, .prodcls").fadeOut(250); 
     /* write a cookie called "sliderHidden" set to 1 
      that remembers that that these items are hidden */ 
    }); 
}); 

的jQuery,有一个cookie plug-in,可以很容易读/写的cookie。

+0

thanx亲爱的,这是一个伟大的 – sajid 2011-12-22 16:12:21

+0

亲爱的greg什么我们编辑代码正在做的是第一次隐藏#slider和.prodcls作为我的#prodoneid在.prodcls然后没有什么可点击 – sajid 2011-12-23 04:30:31

+0

这是你自己的代码从你的问题 - 你写了它。如果你想添加你的HTML到你的问题并描述你想隐藏的内容,那么我们可以建议正确的jQuery隐藏你想要的内容。 – jfriend00 2011-12-23 04:43:21

4

应该使用fadeOut,但如果你想成为尖端技术的一部分,所以你可以坚持页面加载的设置,你也应该使用技术,如饼干或HTML5 localStorage。

当你使用fadeOut元素时,你应该写出你选择存储的状态,并且在页面加载时你应该检查存储以查看是否存在以前的状态;和hide() div如果有必要。

您可以通过localStorage herecookies here了解更多信息。 A jQuery plugin存在抽象低级cookie接口,并且您可能会发现它感兴趣。

事实上,您最好的选择可能是查看this plugin,它尝试使用localStorage,但如果它们在当前浏览器中不受支持则回退到cookie。

+0

thanx亲爱的,那很好 – sajid 2011-12-22 16:12:12

1

你必须使用某种cookie来保存元素的'hidden'状态。寻找jQuery cookie插件(http://archive.plugins.jquery.com/project/Cookie)。

0

Hm- HTML是静态的!

我认为你必须通过一个会话(取决于程序语言)或cookie来处理这个问题。

的cookie看看:this tutorial

0

你可以考虑使用某种类型的会话状态变量或饼干的,那就是虽然弱解。你的问题不是很清楚,或许会更好地重新考虑你的页面或视图模型的结构(假设MVC在这里?)

+0

如果你想提供一个很好的答案,你可以评论这个任务,并询问关于OP的确切需求的其他问题,而不是在你的答案中提问。只是一些友好的建议。 – jlafay 2011-12-22 16:26:38