【问题标题】:Cookie add on button hit按下按钮时添加 Cookie
【发布时间】:2020-03-27 00:17:22
【问题描述】:

我在添加 cookie 时遇到问题。阅读几个答案,但如果您以前从未使用过它们,就很难理解。

如果有人点击指定的按钮,我基本上想要添加一个 cookie。例如,如果有人点击了“赞”按钮,无论他前进/后退还是刷新页面,隐藏的内容都会显示出来,并且cookie会在几天后被删除。

我用来隐藏内容的内容如下:

HTML:

<div id="fd">
    <p>Button from below will become active once you hit like button!</p>
    <div id="get-it">
        <a class="button"><img src="img/get-button.png"></a>
    </div>
</div>
<div id='feedback' style='display:none'></div>

javascript:

FB.Event.subscribe('edge.create', function (response) {
    $('#feedback').fadeIn().html('<p>Thank you. You may proceed now!</p><br/><div id="get-it"><a class="button2" href="pick.html"><img src="img/get-button.png"></a></div>');
    $('#fd').fadeOut();
});

但是,如果我在内容页面上点击刷新或返回/前进,它将再次被隐藏。这就是我想在按钮点击时添加 cookie 的原因。谁能给我一些解释或示例代码?

【问题讨论】:

    标签: javascript jquery cookies onclick jquery-events


    【解决方案1】:

    我建议使用jQuery-cookie plugin。以下是一些使用示例:

    // Create a cookie
    $.cookie('the_cookie', 'the_value');
    
    // Create expiring cookie, 7 days from then:
    $.cookie('the_cookie', 'the_value', { expires: 7 });
    
    // Read a cookie
    $.cookie('the_cookie'); // => 'the_value'
    $.cookie('not_existing'); // => null
    
    // EDIT
    // Attaching to a button click (jQuery 1.7+) and set cookie
    $("#idOfYourButton").on("click", function () {
        $.cookie('the_cookie', 'the_value', { expires: 7 });
    });
    
    // Attaching to a button click (jQuery < 1.7) and set cookie
    $("#idOfYourButton").click(function () {
        $.cookie('the_cookie', 'the_value', { expires: 7 });
    });
    

    您还需要检查 cookie 是否存在(在重新加载浏览器时:

    if ($.cookie('the_cookie')) {
        // Apply rule you want to apply
        $('.ClassToSelect').css("display", "none");
    }
    

    【讨论】:

    • 是的,我在这里的一个问题中看到了这一点作为答案。如前所述,我不明白的是如何将其集成到按钮点击中。我真的很努力。
    • @NenadNovakovic,请参见最后一个标记为 EDIT 的示例。老实说,如果您在附加到事件处理程序方面遇到困难,您需要阅读一些 JS 教程。
    • 太棒了。谢谢你。几分钟,试一试。我敢打赌,问题解决了。有的话会标出来的!
    • @NenadNovakovic,标记我的努力,如果有效,标记为答案 ;-)
    • @NenadNovakovic,尊敬的,SO 不是人们为您编写所有代码的地方。我给出的示例向您展示了如何设置 cookie 并检索已设置的 cookie 的值。我已经给了你完成这项工作所需的一切。我会告诉您,您的选择器在您的表单上不正确。 .button2 当前未选择任何内容。
    【解决方案2】:

    建议您使用localStorage,而不是cookies。

    【讨论】:

    • 浏览器不支持localStorage怎么办?
    • 这是一个有效的问题; localStorage 受到广泛支持并且比 cookie 更好,但如果您的目标是更广泛的浏览器版本,那么 jQuery-cookie 会更广泛。
    • 我看到 localstorage 也说它可以用于会话(一次)或本地(永远)......我需要一些可以说 5 天的东西,比如 cookie.. .
    • 那么从开发的角度来看cookies会更方便,虽然理论上你can do expiration with localStorage.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2011-10-19
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多