/ / Jquery cookie sempre retorna 1 - javascript, jquery, cookies

Cookies jQuery sempre retornam 1 - javascript, jquery, cookies

Usando o plugin de cookie jquery Eu tenho uma função muito simples assim:

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 );
}

},


}

Tenho certeza de que é um erro muito simples, mas minhas pobres habilidades em JS não me permitem entender por que alert() no começo sempre vire 1..

Eu também tentei

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

Mas, claro, o problema não está presente e nenhum outro erro foi relatado no console. Meu objetivo é transformar o pop-up modal em apenas 3 primeiras visitas.

Respostas:

1 para resposta № 1

Basta alterar o incremento pós para pré-incremento:

modal_cookie = modal_cookie++;

para

modal_cookie = ++modal_cookie;

O cookie também retorna um valor de string, para ser um uso seguro parseInt para comparar o valor int. e evite ler o cookie várias vezes, salve-o em uma variável.

Curto:

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);
}

},

1 para resposta № 2

Experimentar:

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

Se o cookie não existir, o comprimento será -1, se o fizer, será 1 ou maior.