2016-06-21 124 views
0

我剛剛創建cookie,需要爲jquery彈出窗口創建一個。jQuery Cookies麻煩

Cookie_name = newsletter_displayed - 值應該是日期,過期1個月 - 如果設置了newsletter_displayed,直到4分鐘過去後才顯示。

我有時間設置爲3秒和5秒用於測試目的。當我點擊x時,cookies會被設置並且可以正常工作。但是,當我刷新頁面時,彈出窗口再次出現。如何使彈出窗口隱藏cookie的存在位置?

我的HTML:

我的JS:

jQuery(document).ready(function(){ 
jQuery(function() { 
    jQuery("#slide").delay(3000).animate({width:'toggle'}, 750); 
    }); 
jQuery('#close').on('click', function() { 

     var $this = jQuery(this); 
     var slide = jQuery('#slide'); 
     if ($this.hasClass('clicked-once')) { 
     // already been clicked once, hide it 
     createCookie('newsletter_suppressed', 'new Date()', 30); 
     if(createCookie('newsletter_displayed', 'new Date()', 30) == 'undefined') { 
     createCookie('newsletter_displayed', 'new Date()', 30); 
     } else { 
     slide.hide(); 
     } 
    } else { 
     // first time this is clicked, mark it 
     createCookie('newsletter_displayed', 'new Date()', 30); 
     $this.addClass('clicked-once'); 
     jQuery(slide).fadeOut(); 
     jQuery(slide).delay(5000).animate({width:'toggle'}, 750); 
    }  

}); 

});

回答

0

下面是答案:

jQuery(document).ready(function() { 
if(!readCookie('newsletter_suppressed')) { 
    jQuery("#slide").delay(3000).animate({width:'toggle'}, 750); 
} 
jQuery('#close').on('click', function() { 

    var $this = jQuery(this); 
    var slide = jQuery('#slide'); 

    if ($this.hasClass('clicked-once')) { 
     // already been clicked once, hide it 
     createCookie('newsletter_suppressed', new Date(), 30); 
     slide.hide(); 

    } else { 
     // first time this is clicked, mark it 
     createCookie('newsletter_displayed', new Date(), 30); 
     $this.addClass('clicked-once'); 
     jQuery(slide).fadeOut(); 
     jQuery(slide).delay(5000).animate({width:'toggle'}, 750); 
    }  
}); 

});