基于选择列表生成的Cookie

cookie produced based on select list

本文关键字:Cookie 列表 于选择 选择      更新时间:2023-09-26

好了,我有了这个jsFiddle,我已经根据选择在div上产生了滑动效果。当选择完成时,我需要生成一个cookie,这样当页面重新加载时,div保持打开状态。不确定如何在代码中产生这种效果。任何帮助都是非常感激的!

下面是一个工作示例的链接:http://jsfiddle.net/J9uuL/1/

可以使用https://github.com/carhartl/jquery-cookie之类的插件吗?

如果是,就使用它的语法

$.cookie('the_cookie', 'the_value');

中的更改侦听器。然后尝试读取cookie值ondomready。

编辑:

未经测试,但可能是这样的(如果你可以使用我提到的插件):

var c = $.cookie("selectedNum");
if (c) {
    $('#book_list').val(c);
    $('#' + c).slideDown("slow");
}
$('div.book').css("display", "none");
$('#book_list').change(function() {
    $('div.book').slideUp("fast");
    $('#' + $(this).val()).slideDown("slow");
    $.cookie("selectedNum", $(this).val() === "" ? null : $(this).val());
});

试试这个:

$('#book_list').change(function() {
    $('div.book').slideUp("fast"); //Slide Up Effect
    $('#' + $(this).val()).slideDown("slow"); //Slide Down Effect
    setCookie('divSelected', $(this).val());
});
if(getCookie('divSelected')){
    $("#book_list option[value='" + getCookie('divSelected') + "']").attr('selected', 'selected');   
}
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;
}

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

我不能用jsfiddle测试它,因为我认为它们不能正确处理cookie,我使用了cookie代码:http://www.w3schools.com/js/js_cookies.asp.