Jquery - 关闭后一周不显示 div(弹出窗口)

Jquery - don't show div (popup) for a week after closing

我用时事通讯形式创建了这个弹出窗口,它会在屏幕滚动到一半时显示,点击 X 将不再显示。

如果有人再次打开该页面,我是否可以 "tell" 到 jquery 在 "X" 关闭后的一周内不显示此 div ?

https://www.centuryparklawgroup.com/popup-dev/

这是一个代码:

<script src="https://www.centuryparklawgroup.com/wp-content/themes/lawyers-attorneys-child/jquery1.11.3.js"></script>
<script>
  function checkShowDiv() {
  var top = $(window).scrollTop();
  if ($(window).scrollTop()  > $(window).height() / 2) {    
  $('.nslttppup:hidden').fadeIn('slow'); //prevent re-fades with :hidden
 }
else {
  $('.nslttppup').hide();
  }
}
$(window).scroll(checkShowDiv);
</script>

<script>
  $(document).ready(function() {
  $('.closeform').click(function() {
  $(window).unbind('scroll', checkShowDiv);
  $(this).closest('.nslttppup').hide('fast');
  return false;
  });
});
</script>

您可以仅使用 cookie 或本地存储,如下例所示 我刚刚在点击关闭时设置了 cookie,因此 pupu 不会在 3 分钟后显示在滚动条上(您可以按天数或日期设置时间到期)

我在这里设置了一个变量 showPopup on ready ,通过读取一个 cookie,如果它存在并设置为 'no' 这样你的弹出窗口就不会显示在滚动条上

所以你的代码应该看起来像(由于 Whosebug 片段安全性,我们不能在这里做一个片段参见 Fiddle 完整代码)

这里是 Fiddle(在此示例中,cookie 在 3 分钟后过期) 我也用 jquery cookie plugin

var showPopup = true;

function checkShowDiv() {
  var top = $(window).scrollTop();
  if(showPopup) {
    if ($(window).scrollTop() > $(window).height() / 2) {
      $('.nslttppup').fadeIn('slow');
    } else {
      $('.nslttppup').hide();
    }
  }
}


$(document).ready(function() {
  showCookieExist();
  $(window).scroll(checkShowDiv);
  $('.closeform').click(function() {
    $(window).unbind('scroll', checkShowDiv);
    $(this).closest('.nslttppup').hide('fast');
    $.cookie('showpopup','no');
    showPopup = false;
    return false;
  });
});

function showCookieExist() {
  console.log($.cookie('showpopup'));
  return $.cookie('showpopup');
}