0

div を作成し、jquery を使用して div の表示と非表示を切り替えました。ユーザーが非表示をクリックすると、ユーザーがページを再度ロードするまで 5 分間 div を非表示にします。状態 (非表示かどうか) を Cookie に保存しました。ユーザーが 5 分以内に 2 回目にページを読み込んでいる場合、div は非表示にする必要があります。以下のコードを試しましたが、うまくいきません。誰かがこれで私を助けることができますか?

<script>
        $(document).ready(function () {
            if (getCookie(hidden) === "yes") {
                $("#divAlert").hide();
                if ($("#Hide").is(":visible")) {
                    $("#Hide").css("visibility", "hidden");
                }

                $("#Show").css("visibility", "visible");
            }


            $("#Hide").click(function () {
                $("#divAlert").hide();
                if ($("#Hide").is(":visible")) {
                    $("#Hide").css("visibility", "hidden");
                }
                setCookie();
                $("#Show").css("visibility", "visible");

            });

            $("#Show").click(function () {
                $("#divAlert").show();

                $("#Hide").css("visibility", "visible");


                if ($("#Show").is(":visible")) {
                    $("#Show").css("visibility", "hidden");
                }
            });           
        });

        function setCookie() {
            var currentDate = new Date();
            document.cookie = "hidden=yes;exppires=" + currentDate.getMinutes() + 1;
        }

        function getCookie(cookiename) {
            var results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]*)(;|$)');

            if (results)
                return (unescape(results[2]));
            else
                return null;
        }
    </script> 
4

2 に答える 2

1

関数と関数が適切に機能すると仮定するgetCookie()と、コードの次の行は次のようになります。setCookie()

getCookie(hidden);

次のようにする必要があります。

getCookie("hidden");

これはおそらくスクリプト エラーであるため、JavaScript エラー コンソールを見れば、すぐにこの問題に気付くでしょう。

コードの残りの部分は、次のように簡略化できます。

    $(document).ready(function () {
        if (getCookie(hidden) === "yes") {
            $("#divAlert").hide();
            $("#Hide").css("visibility", "hidden");
            $("#Show").css("visibility", "visible");
        }


        $("#Hide").click(function () {
            $("#divAlert").hide();
            $(this).css("visibility", "hidden");
            $("#Show").css("visibility", "visible");
            setCookie();

        });

        $("#Show").click(function () {
            $("#divAlert").show();
            $(this).css("visibility", "hidden");
            $("#Hide").css("visibility", "visible");
        });           
    });
于 2012-04-19T11:57:34.907 に答える
0

getCookie(cookiename)関数では、どちらが であるべきかを参照しcookie_nameますcookiename

于 2016-07-03T00:27:01.747 に答える