为什么我的弹出功能无法正常工作?

时间:2020-01-22 16:09:28

标签: jquery html css popup

我会尽量简洁明了!我的一半问题是正确表达我的问题;)

我在我的网站上设置了一个粘性弹出页面,以收集新闻简报的电子邮件,并且进行了设置,以便localStorage记住弹出窗口的关闭状态(这样,我们网站的访问者就不会烦恼的是它会在每次加载页面时弹出。

这很好,但是今天我认为最好添加一个按钮,当单击该按钮时可以打开弹出窗口(因为它将一直保持关闭状态,直到他们清除缓存,否则他们可能想在不知情的情况下访问弹出窗口)为此)。

我正在使用Weebly,我必须在菜单导航中获取按钮的唯一选项是添加一个外部链接页面,然后使用javascript剥离插入的 http:// 虚弱地注入代码以调用我的弹出窗口。这可行,但是当我移至另一页面时,弹出窗口在关闭后即打开。奇怪的是,这仅发生一次,然后便记住了关闭状态。

这似乎是可重复的,因此我的逻辑/代码中肯定有一个缺陷,但是我无法弄清楚它是什么,非常感谢任何提示或建议!

要查看有问题的按钮,请执行以下操作:

https://www.reclaimdesign.org

位于顶部导航菜单最右侧的 +

从页脚中调用的代码是:

<!--Use localStorage To Hide Signup Box If Closed-->
<script src="https://www.reclaimdesign.org/uploads/2/4/9/8/24985082/custom_themes/606760176814155089/files/hide-signup-min.js" async="async"></script>

$(window).on("load", function() {
        $("a[href='/page.html']").attr("href", "javascript:(function(){$('.signup').css('display', 'block');})()");
    });

这是hide-signup.js中的代码:

$(document).ready(function() {

$('.signup').css('display', 'block');

$PopUp = $('.signup');

var hide = JSON.parse(localStorage.getItem('hide'));

if (hide) {
    $PopUp.hide();
} else {
    // initialize value in case it hasn't been set already
    localStorage.setItem('hide', false);
}

$('.closebtn').click(function() {
    $('.signup' ).hide();
    // toggle the boolean by negating its value
    var hide = JSON.parse(localStorage.getItem('hide'));
    localStorage.setItem('hide', !hide);
});

});

1 个答案:

答案 0 :(得分:0)

正在发生的事情:

1-初始加载(新用户):如代码所示,皮料为假

2-用户单击关闭按钮:隐藏变为真

3-用户单击+按钮:没有任何反应(应将本地存储中的hide更改为true)

4-用户再次单击关闭按钮:隐藏变为假(这将使弹出窗口显示在另一个页面加载中)

第三步,您需要制作

localStorage.setItem('hide', false);
相关问题