Jquery cookie总是返回1

时间:2014-09-22 11:09:19

标签: javascript jquery cookies

使用jquery cookie plugin我有一个非常简单的功能:

demoPopupInit: function() {
        // alert($.cookie('modal-popup'));
       if (! $.cookie('modal-popup')) {
           $.cookie('modal-popup',1) ;
        }

        if ( $.cookie('modal-popup') <= 3 ) {
            // return;

        var modal_cookie = $.cookie('modal-popup') ;
        modal_cookie = modal_cookie++;
        $("#intro_index").modal({backdrop:true});
        $.cookie('modal-popup', modal_cookie );
        }

    },


    }

我确信这是一个非常简单的错误,但我糟糕的JS技能不允许我理解为什么开头的alert()总是转向1 ..

我也试过

   if (! $.cookie('modal-popup') == NULL) {
       $.cookie('modal-popup',1) ;

但当然,问题不存在,并且控制台中没有报告其他错误。 我的目标是仅在首次访问时打开模态弹出窗口。

2 个答案:

答案 0 :(得分:1)

尝试:

if($.cookie('modal-popup').length < 1){ 
  $.cookie('modal-popup',1);
}

如果cookie不存在,则长度为-1;如果是,则为1或更高。

答案 1 :(得分:1)

只需将后增量更改为preincrement:

modal_cookie = modal_cookie++;

modal_cookie = ++modal_cookie;

另外cookie返回一个字符串值,为了安全使用parseInt来比较int值。 并避免多次读取cookie,将其保存在变量中。

短:

demoPopupInit: function() {

       if (!$.cookie('modal-popup')) {
           $.cookie('modal-popup',1) ;
        }
        var curval = parseInt($.cookie('modal-popup'));
        if ( curval <= 3 ) {
            // return;

        $("#intro_index").modal({backdrop:true});
        $.cookie('modal-popup', ++curval);
        }

    },