2016-04-07 7 views
1

私は月に一度ポップアップするdivを作成しようとしています。あなたがそれをクリックした後、私はクッキーが再び表示されないことを確認したい。クッキーを使ってdivを隠す問題

ブロックが消えますが、ページをリフレッシュするとすぐにdivが再び表示され、クッキーが機能していないように見えます。

私は間違っていますか?ここで

私が使用しているコードです:

HTML:

<div id="lightboxz" class="lightbox"> 
    <table class="lightbox_table"> 
    <tr> 
     <td class="lightbox_table_cell" align="center"> 
     <div id="lightbox_content"> 
      <div id="closedat" onclick="Mailsign()"> <i class="fa fa-close"></i> </div> 

      {loadmodule mod_mailchimpsignup} 

     </div> 
     </td> 
    </tr> 
    </table> 
</div> 

はJavaScript:

function Mailsign(){ 

    days=30; 
    myDate = new Date(); 
    myDate.setTime(myDate.getTime()+(days*24*60*60*1000)); 

    document.cookie = 'Mailsign=Accepted; expires=' + myDate.toGMTString(); 
    document.getElementById('lightboxz').style.display='none'; 
} 

function CheckCookies(){ 
    if ($.cookie("Mailsign") === "Accepted") 
    { 
     $("#lightboxz").hide(); 
    } 
} 

更新
クッキーがインストールされてばかり ので、問題はっきりとCheckCookies関数です。これはサイト上の他のjQueryコードとのjQueryの競合ですか?

+0

あなたのページのどこかにjQueryを含めていますか?ブラウザのコンソールにエラーが表示されますか? – timothyclifford

+0

はい私のブラウザにクッキーがインストールされているので、現在考えています これを解決する方法を見つけようとしています – user2620358

答えて

1

ここにはいくつかの項目があります。デフォルトではdivが隠されていて、表示されて消えてしまう短い期間がないように思えます。

<div id="lightboxz" class="lightbox"></div> 
.lightbox { display: none; } 
ます。また、実際にCheckCookies()を呼び出しますが、文書の準備ができたとき、あなたがそれを行うことを確認する必要があり

!すなわち

$(document).ready(function() { 
    CheckCookies(); 
}); 

私はこのシナリオでは、同じようにうまくいくとクッキーの必要性を回避するlocalStorageているかのようにそれはそうと言うだろう。

function Mailsign(){ 
    days=30; 
    myDate = new Date(); 
    myDate.setTime(myDate.getTime()+(days*24*60*60*1000)); 
    localStorage.setItem('popup', myDate); 
} 

function CheckCookies(){ 
    var today = new Date(); 
    var showDate = new Date(localStorage.getItem('popup')); 
    if (!localStorage.getItem('popup') || today > showDate) 
    { 
     $("#lightboxz").show(); 
    } 
} 

http://codepen.io/harangue/pen/dMJRMo

+0

誰かがクローズボタンをクリックするまで、divを常に表示したい場合 上記のコード結果divに全く表示されない ローカルストレージを使用していないので、私は間違っているかもしれません。 – user2620358

+0

いいえ、それは@ user2620358で動作します。追加した私の例を見てください。 – Harangue

+0

私はあなたの例を使用するとき(jqueryを追加した後も矛盾はありません)は完璧に機能するので、私は前に何か間違っていました。このオプションをありがとうございました! もう一度見たい場合は小さな質問です(テスト目的のために)どうすればいいですか? – user2620358

関連する問題