2010-12-06 24 views
4

私はアナウンスをアナウンスするために私のウェブサイトの上部にバーを設けています(例えば、stackoverflowが新しいバッジなどでそれを行う方法など)。次のように私が使用しているコードがあるアナウンスバー、クッキーを設定する

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のクッキープラグインを使ってクッキーを設定できるようにしたいのですがユーザーがバーを閉じるとx時間/日の間は再び表示されません。私はこれをどうやってするのか困惑した。

おかげ

答えて

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'クッキーを空でないストリーミングに設定しています。'true'は他のものでもかまいません。また、expiresオプションを7日間使用することもできます。それが最も一般的ですので、

expiresを使用すると、別の有効期限をしたい場合は、またDateを自分で計算してでそれを渡すことができます...(それは時間の端数!、例えば1/24することができます)の日数を要し直接。

+1

詳細な説明とコードをお寄せいただきありがとうございます。うまくいきます! – Blackbird

関連する問題