-1

ユーザーの最初の訪問時に jQuery を使用して何らかの方法で Cookie を設定し、ページの準備が整ったときにロードされるライトボックスを表示したいと考えています。

Cookie が設定されたら、再度アクセスした場合、Cookie があるかどうかを確認し、ある場合はライトボックスを表示しないようにします。

これを支援するためにCookieプラグインを使用しています。私のコードに問題がある人はいますか?

$(document).ready(function(){
    var cookie = $.cookie("popup", 1);
    if(cookie == "") { 
        $.fn.colorbox({width:"500px", height:"400px", inline:true, href:"#sell"});
    }
});
4

2 に答える 2

2

Cookie を作成する前に、Cookie が存在するかどうかを確認する必要があるようです。Cookie を探す前に作成すると、常にそこに表示されます。

したがって、次のようなことをしたいと思うでしょう:

$(document).ready(function(){
    if (!$.cookie("popup")) { 
        $.fn.colorbox({width:"500px", height:"400px", inline:true, href:"#sell"});
    }
    $.cookie("popup", 1, , {expires: 365});
});

webdeveloper が彼の回答で指摘したように、プラグインはデフォルトでセッション Cookie を作成するため、expires オプションを追加しました。これは、ブラウザーを閉じると通常は削除されるため、おそらくあなたが望むものではありません。

于 2012-10-09T14:51:56.433 に答える
0
$.cookie("popup", 1); 

セッション Cookie を作成します。このコードは何も返しません。undefined

クッキーを読む:

$.cookie('popup'); // => "1"

それで:

>>> undefined == ""

false

ドキュメンテーション: jquery-cookie

于 2012-10-09T14:48:40.680 に答える