2012-02-22 94 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時,頁面可能會重新加載,但我認爲它不會。