2010-12-06 2 views
4

У меня есть бар в верхней части моего сайта, чтобы объявлять объявления (например, как stackoverflow делает это с новыми значками и т. Д.). Код, я использую следующим образомОбъявление Bar, настройка файла cookie

HTML

<div id="announcement_popup" title="Special Announcement" style="display:none;"> 
    <h3>Announcement</h3> 
    <a href="#" id="closeit">Close</a> 
</div> 

JQuery

$("#announcement_popup").fadeIn("slow"); 
$("a#closeit").click(function() { 
    $("#announcement_popup").fadeOut("slow"); 
    return false; 
}); 

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

Благодаря

ответ

5

Допустим, вы хотите, чтобы скрыть его в течение 7 дней, он будет выглядеть следующим образом:

if(!$.cookie('hideTopBar')) $("#announcement_popup").fadeIn("slow"); 
$("a#closeit").click(function() { 
    $.cookie('hideTopBar', 'true', { expires: 7 }); 
    $("#announcement_popup").fadeOut("slow"); 
    return false; 
}); 

Здесь мы проверка, если куки установлен на любой непустой строки изначально , если он тогда вообще не затухает. В обработчике кликов мы устанавливаем его таким же 'hideTopBar' cookie на любую непустую строчку, 'true' может быть что угодно еще ... и использовать опцию expires в течение 7 дней.

expires занимает несколько дней (может быть дробным !, например 1/24 в течение часа), так как это самое распространенное ... если вы хотите другую дату истечения можно рассчитать Date себя и передать в непосредственно.

+1

Благодарим за подробное описание и код. Работает хорошо ! – Blackbird 2010-12-06 11:58:59

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