2012-08-08 93 views
0

我有一个网站,其索引非常长。我使用jQuery来隐藏所有嵌套的项目,并且只在页面加载时显示主要类别。防止jquery准备好后退按钮

jQuery(document).ready(function($) {  
    $('div.sideNav li > ul').css({"display":"none"}); //hide all nested ul's 
}); 

我有另一个脚本来展开和折叠索引类别项目,当用户点击它们。

但是在类别里面是指向pdfs的实际文档的链接。所以如果有人点击pdf来查看它,它将导航到新的页面。然后,当他们完成查看后,他们点击后退按钮,他们希望看到索引在离开之前以扩展方式继续浏览索引。

现在当页面从PDF回来,崩塌指数回到其初始状态的准备函数获取调用。我怎样才能防止这种情况,以便嵌套的列表项只在页面加载时隐藏?

+2

我会在另一个窗口中打开pdf。 – 2012-08-08 14:32:40

回答

4

而是担心如何处理,如果有人点击返回按钮,我会建议你只在新窗口中打开PDF。这将允许用户直接关闭PDF,然后您不必担心保留上一页的状态。

你会想,如果你不知道如何产卵点击一个链接时,一个新的窗口使用target属性:

<a href="pdf-link" target="_blank">Open PDF</a> 
+0

感谢您的快速响应。我想过使用目标空白,但想知道是否可能使用其他一些jQuery事件来代替ready()。 – solerous 2012-08-08 14:37:19

+0

不需要jQuery,当这是你想要的。是的,它可以在jQuery中完成,但是为什么要使解决方案比它更复杂。如果你不熟悉,请阅读[KISS](http://en.wikipedia.org/wiki/KISS_principle)。 – RobB 2012-08-08 14:39:44

5

我认为最简单的解决办法是使用在新窗口中打开PDF target="_blank"

<a href="pdf-path-here" target="_blank">View PDF</a> 

这样,用户将关闭新的选项卡,页面会,因为它是以前。

2

使用cookie或localStorage存储索引展开方式和调用jQuery(document).ready()时的数据,读取存储在其中的数据以确定要展开的项目。当访问者点击链接并返回时,页面再次加载,除非保存,否则数据将丢失。

编辑:如果你想让他们打开相同的标签页或窗口中的链接,那就是