2010-12-06 8 views
4

J'ai une barre en haut de mon site pour annoncer des annonces (comme comment stackoverflow le fait avec de nouveaux badges, etc.). Le code j'utilise est la suivanteBarre d'annonce, mise en place d'un 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; 
}); 

Tout fonctionne très bien, mais je voudrais être en mesure de définir un cookie en utilisant le plug-in cookie jquery Ainsi, lorsque l'utilisateur ferme la barre, il ne s'affiche plus pendant x heures/jours. Je suis tombé sur comment faire cela.

Merci

Répondre

5

Disons que vous vouliez cacher pendant 7 jours, il ressemblerait à ceci:

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

Ici, nous vérifions si le cookie est réglé sur une chaîne non vide d'abord Si c'est le cas, ne touchez pas du tout à la barre. Dans le gestionnaire de clics, nous définissons ce même cookie 'hideTopBar' sur n'importe quel strying non vide, 'true' pourrait être autre chose aussi ... et en utilisant l'option expires pendant 7 jours.

expires prend un certain nombre de jours (il peut être une fraction !, par exemple 1/24 pendant une heure) puisque c'est le plus courant ... si vous voulez une date d'expiration différente, vous pouvez également calculer la Date vous et passer que directement.

+1

Merci pour les descriptions détaillées et le code. Fonctionne bien ! – Blackbird

Questions connexes