0
我有一個菜單,我希望狀態打開/關閉狀態在頁面重新加載以及用戶點擊關閉或打開時持續存在。在頁面重新加載時保存菜單狀態
我使用一個Cookie插件,我幾乎沒有,但我有麻煩設置接近cookie來記住關閉狀態,開放的cookie仍然存在。
$(document).ready(function() {
// Open/Close Panel According to Cookie //
if ($.cookie('filtermenu') === 'open'){
$('.filter').show(); // Show on Page Load/Refresh without Animation
}
else {
}
if ($.cookie('filtermenu') === 'close' || $.cookie('filtermenu') === null){
$('.filter').hide(); // Show on Page Load/Refresh without Animation
}
else {
}
// Toggle Panel and Set Cookie //
$('#filter-menu').click(function(){
$('.filter').slideToggle('fast', function(){
if ($('#filter-menu').is(':hidden')) {
$.cookie('filtermenu', 'close', { expires: 30 });
} else {
$.cookie('filtermenu', 'open');
}
});
return false;
});
});
任何人都可以請看看我做錯了什麼。
謝謝。
更新:對不起,現在我有這個,但它仍然沒有關閉,我使用的日期對象不正確嗎?
Ok, so now I have this, but the menu still doesn't stay closed.
$(document).ready(function() {
// Open/Close Panel According to Cookie //
if ($.cookie('filtermenu') === 'open'){
$('.filter').show(); // Show on Page Load/Refresh without Animation
}
else {
}
if ($.cookie('filtermenu') === 'close' || $.cookie('filtermenu') === null){
$('.filter').hide(); // Show on Page Load/Refresh without Animation
}
else {
}
// Toggle Panel and Set Cookie //
$('#filter-menu').click(function(){
$('.filter').slideToggle('fast', function(){
var now = new Date();
var time = now.getTime();
time -= 60 * 1000;
now.setTime(time);
$.cookie('filtermenu', 'open', {expires: now});
if ($('#filter-menu').is(':hidden')) {
$.cookie('filtermenu', 'close', { expires: 30 });
} else {
$.cookie('filtermenu', 'open');
}
});
return false;
});
});
謝謝,有道理。你會碰巧知道如何抓住當前時間嗎? – leanda
我已經用一個例子更新了我的答案,以獲取當前時間並將其設置回足夠遠以使cookie過期。希望這可以幫助! – binaryatrocity
好吧,現在我有這個,但菜單仍然沒有關閉。 – leanda