设置:我有一个表单可以捕获$thisSearch.val()
,将其保存为cookie,然后推送到数组。表单是从标题中的菜单项触发的叠加层,因此可以显示在站点中的任何页面上。
问题是它似乎只是在输入的页面上保存/保留输入值。我正在尝试将所有这些值收集到一个list.items()
数组中,该数组可以在网站的任何位置输入。
我已经尝试自己将字符串推送到数组而不是add
函数,并将dom移动到搜索表单中。
当我知道要具体询问的内容时,我可以更新问题。我应该注意的任何指针/概念都很棒。
var cookieList = function(cookieName) {
var cookie = $.cookie(cookieName);
var items = cookie ? cookie.split(/,/) : new Array();
return {
"add": function(val) {
items.push(val);
$.cookie(cookieName, items.join(','));
},
"items": function() {
return items;
}
}
}
var list = new cookieList("PreviousSearches");
$searchSubmit.on('click', function() {
var $thisSearch = $(this).prev().find($searchInput);
if( $thisSearch.val() == '' ) {
alert('Please enter a search term');
console.log( list );
return false;
} else {
searchTerm = $thisSearch.val()
list.add( searchTerm );
}
});
var searchTerms = list.items();
var total = searchTermsFiltered;
var searchTermsFiltered = searchTerms.filter(Boolean).slice( - 5 ).reverse();
var searchtermClean = searchTermsFiltered.join();
$.each($(searchTermsFiltered), function(i,v){
if (!window.location.origin)
window.location.origin = window.location.protocol+"//"+window.location.host;
var lastURLRaw = window.location.origin+'/bch/?s='+v;
var lastURL = lastURLRaw.replace(/ /g, '+');
listItem = '<li><a href="'+lastURL+'">'+v+'</a></li>';
$('.tags, .search-tags').append(listItem );
});
答案 0 :(得分:0)
我在下面的顶部答案中找到了来自jquerys $ .cookie的路径说明符。
我的代码中的 $.cookie(cookieName, items.join(',')
,{路径:'/'}); 。
why are my jquery cookies not available across multiple pages?