2012-07-31 53 views
1

我有一個div切換小問題。在我的頁面中,我有兩個主要的div,一個是box,另一個是box2。我怎樣才能設置曲奇與jQuery的切換div

當用戶首先打開我的頁面時,只有框可見,但當他/她點擊box2時,它會滑下並顯示。

用戶切換box2後,頁面重新加載該div必須打開,但我不知道如何設置cookie的。

請點擊這裏查看(http://jsfiddle.net/wasimkazi/fauNg/18/)

function getCookie(c_name) { 
var i, x, y, ARRcookies = document.cookie.split(";"); 
for (i = 0; i < ARRcookies.length; i++) { 
    x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 
    y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 
    x = x.replace(/^\s+|\s+$/g, ""); 
    if (x == c_name) { 
     return unescape(y); 
     } 
    } 
} 

function setCookie(c_name, value, exdays) { 
var exdate = new Date(); 
exdate.setDate(exdate.getDate() + exdays); 
var c_value = escape(value) + ((exdays === null) ? "" : "; expires=" + exdate.toUTCString()); 
document.cookie = c_name + "=" + c_value; 
} 

var widget2 = $(".widget2"), 
box2 = $(".box2"); 

widget2.hide(); 
box2.click(function() { 
$(this).next(widget2).slideToggle("fast", function() {}); 
}); 

var inner = $(".inner"), 
box = $(".box"); 

inner.hide(); 
box.click(function() { 
$(this).next(inner).slideToggle("fast", function() { 
    }); 
}); 
+0

如果用戶打開所有div,重新加載後它們都需要打開? – Kir 2012-07-31 07:59:33

回答

1

您可以使用這樣的存儲盒的狀態,然後使用的getCookie檢查在頁面重載狀態,然後切換它相應

box2.click(function() { 
    $(this).next(widget2).slideToggle("fast", function() { 
     var flag = ($(this).css("display") == 'none')?'off':'on'; 
     setCookie('box2', flag); 
    }); 
}); 

,然後在頁面重載檢查框的狀態/值,然後相應地切換。 像

if(getCookie('box2') == 'on'){ 
    box2.show(); 
}else{ 
    box2.hide(); 
} 

沒有確切的解決方案,但絕對給你一些方法你就可以,如果您對setCookie方法和getCookie方法是否正確疑問來處理它

,你可以參考這個link on quirksmode用於簡單實施Cookie

+0

感謝您的快速回放。但是這個代碼不起作用。當我重新加載我的網頁時,這個div被重置。請在這裏查看http://jsfiddle.net/wasimkazi/fauNg/20/ – 2012-07-31 08:15:18

+0

ofcourse它們將被重置,因爲您必須手動(我的意思是通過檢查)將其重置爲狀態,具體取決於之前設置的cookie ...讓我嘗試在jsfiddle – swapnilsarwe 2012-07-31 08:16:40

+0

雅我也認爲相同,但每當我試圖設置檢查,以便切換div停止和所有div都打開。 – 2012-07-31 08:42:09