2011-12-22 70 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