【问题标题】:Show/Hide div on button click and save Cookies单击按钮时显示/隐藏 div 并保存 Cookie
【发布时间】:2018-09-29 18:42:41
【问题描述】:

我使用此 javascript 代码进行 cookie 和显示/隐藏;

$(document).ready(function () {

        if (Boolean(readCookie('hide'))) {
            $('.pop-up').hide();
            $('.pop-up').fadeOut(1000);
        }
        $('.close-button').click(function (e) {

            $('.pop-up').fadeOut(700);
            $('#overlay').removeClass('blur-in');
            $('#overlay').addClass('blur-out');
            e.stopPropagation();

            createCookie('hide', true, 1)
            return false;
        });

        function createCookie(name, value, days) {
            if (days == 1) {
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                var expires = "; expires=" + date.toGMTString();
            }
            else var expires2 = "";
            document.cookie = name + "=" + value + "; expires=" + expires + "; path=/";

          //  $.cookie(name, value, { expires: days });
        }

        function readCookie(name) {
            var nameEQ = name + "=";
            var ca = document.cookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') c = c.substring(1, c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
            }
            return null;
        }

        function eraseCookie(name) {
            createCookie(name, "", -1);
        }

    });

我在同一页面上需要 10 个按钮,但我做不到。因为如果我点击 close-button (X) 所有按钮都会隐藏。我需要一层一层隐藏。

我尝试更改名称和值但不成功。

这是 HTML;

<div id="overlay" class="cover blur-in">
    <div class="content"></div>
</div>
<div class="row pop-up">
    <div class="box small-6 large-centered">
        <a href="#" class="close-button">✖</a>
        <h3 class="popup">Welcome</h3>
        <p>info </p>
        <p>info</p>
        <a href="#" class="button">press for facebook</a>
    </div>
</div>

This is jsfiddle for this code

【问题讨论】:

    标签: javascript html cookies onclick show-hide


    【解决方案1】:

    您的 jsfiddle 似乎无法正常工作(空白),但总体思路是循环使用 close_button 类的所有元素并为每个元素添加一个侦听器,如下所示:

    $('.close-button').each(function(i, obj) {
         $(this).click(function (e) {
             $('.pop-up').eq(i).fadeOut(700);
             $('#overlay').removeClass('blur-in');
             $('#overlay').addClass('blur-out');
             e.stopPropagation();
             return false;
         })
    });
    

    【讨论】:

    • jsfiddle 没问题。我认为您正在单击 X 按钮并运行。尝试 CTRL+SHIFT+N 并重试或删除您的 cookie。而你的代码,是什么改变了这个?
    • 它为每个关闭按钮添加了一个单独的监听器,因此按下一个不会关闭它们。
    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 2013-01-16
    • 2016-05-21
    • 2020-02-23
    • 1970-01-01
    • 2014-08-02
    • 2013-04-24
    • 1970-01-01
    相关资源
    最近更新 更多