仅在onclick时设置cookie并隐藏消息

时间:2015-03-01 20:14:46

标签: javascript jquery cookies setcookie

我试图在页面上设置cookie消息。我想要的是当cookie不存在时,显示消息。当用户点击"我接受"按钮,cookie已设置。并且当用户返回页面/网站时,不再显示该消息。

但它现在所做的是在用户访问我们页面时立即设置cookie。

$(document).ready(function() {


    var visit=GetCookie("AMIR86");
    if (visit==null){
        cookiebar();
    }
    var expire=new Date();
    expire=new Date(expire.getTime()+7776000000);
    document.cookie="AMIR86=here; expires="+expire;


    $('#close-cookies').click(function(){ 
        $('#cookiebar').addClass('close-cookies');
    });

});

function GetCookie(name) {
    var arg=name+"=";
    var arglen=arg.length;
    var dclen=document.cookie.length;
    var i=0;

    while (i<dclen) {
        var j=i+arglen;
            if (document.cookie.substring(i,j)==arg)
                return "here";
                i=document.cookie.indexOf(" ",i)+1;
            if (i==0) 
                break;
    }
    return null;
}

function cookiebar() {
    $('#cookiebar').addClass('display');
}

我工作的jsfiddle:http://goo.gl/61aLuS

1 个答案:

答案 0 :(得分:1)

这段代码设置了cookie。为了便于阅读和清晰编码,请将其移至自己的功能中。

function setAgreeCookie() {
    var expire=new Date();
    expire=new Date(expire.getTime()+7776000000);
    document.cookie="AMIR86=here; expires="+expire;
}

然后,在“我同意”按钮上设置click处理程序以设置Cookie。

$('#close-cookies').click(function(){ 
    setAgreeCookie();
    $('#cookiebar').addClass('close-cookies');
});