用于在X页面浏览后显示模态的JS cookie

时间:2017-12-10 22:05:17

标签: jquery javascript cookies

我试图在这种情况下使用JS Cookie显示登录/注册模式4个页面视图,但它没有触发,我没有在控制台中看到任何错误。非常感谢任何帮助!

这里有条件添加到头部的代码(我将在工作后将其转换为函数),并且我使用https://github.com/js-cookie/js-cookie

<?php if(!is_user_logged_in() && is_singular('listings')) ?>
<script>
    jQuery(document).ready(function () {
        // create cookie
        Cookies.set('visited', '0'); // visited = 0

        var VisitedSet = Cookies.get('visited');

        if(VisitedSet == 3) {
            jQuery("p.counter").html("From this point, you will always see the login/register modal on next visit!");
            jQuery(window).load(function() {
                jQuery('#overlay').addClass('open');
                jQuery('html, body').animate({scrollTop : 0},800);
                return false;
            });
        } else {
            VisitedSet++; // increase counter of visits
            jQuery("p.counter span").append(VisitedSet);
            // set new cookie value to match visits
            Cookies.set('visited', VisitedSet, {
                expires: 1 // expires after one day
            });

            console.log('Page Views: ' + VisitedSet);

            return false;
        }
    }); // ready
</script>
<?php } ?>

这是在控制台NaN中显示的内容,尽管我将cookie的初始值设置为0

enter image description here

以下是我试图提取的示例,但如果JS Cookie http://www.picssel.com/playground/jquery/fancyboxOn4pageView_24jan12.html

,则会更新到最新版本

1 个答案:

答案 0 :(得分:1)

您将cookie始终设置为零...

如果cookie存在值,您需要先检查,只有当cookie不存在时才会设置第一个cookie。

我在这里修改你的代码: https://codepen.io/WebStorm-IL/pen/KZPVdY

jQuery(document).ready(function () {
  // Get cookie
  var VisitedSet = Cookies.get('visited');


  if( ! VisitedSet ){
    // create cookie only if already not set
    Cookies.set('visited', '0'); // visited = 0
    VisitedSet = 0;
  }

  // increase counter of visits
  VisitedSet++;

  if(VisitedSet == 3) {
    jQuery("p.counter").html("From this point, you will always see the login/register modal on next visit!");
    jQuery(window).load(function() {
      jQuery('#overlay').addClass('open');
      jQuery('html, body').animate({scrollTop : 0},800);
      return false;
    });
  } else {
    jQuery("p.counter span").append(VisitedSet);
    // set new cookie value to match visits
    Cookies.set('visited', VisitedSet, {
      expires: 1 // expires after one day
    });

    console.log('Page Views: ' + VisitedSet);

    return false;
  }
}); // ready

(function( $ ){
  $("#resetCounter").click(function(){
    Cookies.set('visited', '0');
    location.reload();
  });
})( jQuery );