2012-07-31 2 views
1

У меня есть небольшая проблема с переключением div. На моей странице у меня два основных div, один - ящик, а другой - box2.как я могу установить cookie для переключения div с jquery

Когда пользователь открывает мою страницу, сначала отображается только поле, но когда он нажимает на 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

ответ

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(); 
} 

Не точное решение, но Jus дает вам каким-то образом вы сможете справиться

если у вас есть сомнения относительно того, верны, SetCookie и getcookie, вы можете обратиться в этом link on quirksmode для простой реализации куки-файлов

+0

Спасибо за ваш быстрый повтор. но этот код не работает. когда я перезагружаю свою страницу, этот div сбрасывается. Пожалуйста, проверьте здесь http://jsfiddle.net/wasimkazi/fauNg/20/ –

+0

Конечно, они будут сброшены, потому что вы должны сделать это вручную (я имею в виду, поставив чеки), чтобы вернуть его в статус в зависимости от ранее установленного файла cookie ... позвольте мне попробовать на jsfiddle – swapnilsarwe

+0

Я тоже думаю, что это так же, но всякий раз, когда я пытаюсь установить проверки, чтобы переключить div, остановлены и все div открыты. –

Смежные вопросы