2012-08-08 132 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()時的數據,讀取存儲在其中的數據以確定要展開的項目。當訪問者點擊鏈接並返回時,頁面再次加載,除非保存,否則數據將丟失。

編輯:如果你想讓他們打開相同的標籤頁或窗口中的鏈接,那就是