I was looking for a way to save/load an array to a jquery cookie and used the top answer of this question how to store an array in jquery cookie? I can add as many items to the cookie list as I want and get the right number when I check the array length. But as soon as I refresh the page and load the cookie list, I only get a maximum of 23 items in the array, and can't find a reason for it.
here's my code
//This is not production quality, its just demo code.
var cookieList = function(cookieName) {
//When the cookie is saved the items will be a comma seperated string
//So we will split the cookie by comma to get the original array
var cookie = $.cookie(cookieName);
//Load the items or a new array if null.
var items = cookie ? cookie.split(/,/) : new Array();
//Return a object that we can use to access the array.
//while hiding direct access to the declared items array
//this is called closures see http://www.jibbering.com/faq/faq_notes/closures.html
return {
"add": function(val) {
//Add to the items.
items.push(val);
//Save the items to a cookie.
//EDIT: Modified from linked answer by Nick see
// http://stackoverflow.com/questions/3387251/how-to-store-array-in-jquery-cookie
$.cookie(cookieName, items.join(','));
},
"remove": function (val) {
//EDIT: Thx to Assef and luke for remove.
indx = items.indexOf(val);
if(indx!=-1) items.splice(indx, 1);
$.cookie(cookieName, items.join(',')); },
"clear": function() {
items = [];
//clear the cookie.
//$.cookie(cookieName, '');
$.removeCookie(cookieName);
},
"items": function() {
//Get all the items.
return items;
}
}
}
var packCollectorCookieList = new cookieList("xWeaselPackCollector"); // all items in the array.
var compareListCollector = packCollectorCookieList.items();
alert(compareListCollector.length);
and I add items (which are links) like
packCollectorCookieList.add($(this).parent('li').data('link'));