我需要一个“不再显示”按钮

时间:2014-02-20 13:24:04

标签: javascript jquery web

对于javascript和jquery,我是一个非常业余的人,我几乎无法阅读它。

我尝试了在FancyBox - "Don't show this message again" button?发布的解决方案,但是当我测试时它似乎对我不起作用。

我需要一个隐藏某个元素(按ID)的按钮,并创建一个cookie,确保该人不再看到该消息。

我有这样的文字:

<p id="guidelinestext" class="guidelinestext">Please make sure to read our <a target="_blank" href="http://www.uqreview.com/review-guidelines/">Review Guidelines</a> before posting a review.</p>

我需要一个按钮,上面写着“不再显示”

如果这是一个愚蠢的问题,真的很抱歉。希望很容易回答。谢谢。

3 个答案:

答案 0 :(得分:8)

只需使用html5 localStorage

<button id="forgetMe">Don't show this again</button>

<script>
    if(localStorage.getItem("DontShow")) {
        $("#forgetMe").hide();
    }
    $(document).on("click", "#forgetMe", function() {
        localStorage.setItem("DontShow", "true");
    });
</script>

答案 1 :(得分:1)

使用JQuery插件很简单 - JQuery Cookie

$('#button-id').on('click', function() {
   $.cookie("buttonClicked", "YES"); 
});

在代码中的某处,例如加载主页:

var isVisited = $.cookie("buttonClicked"); 
if(isVisited === 'YES') {
   showButton();
} else {
   hideButton();
}

var showButton = function() {
  $('#button-id').show();   
} 

var hideButton = function() {
  $('#button-id').hide();   
} 

或者你要做的任何事情!

如果在任何情况下您必须删除coockie,您可以致电:

$.removeCookie("buttonClicked");

修改

正如我在您的网页上看到的那样,您正在做...奇怪!我建议:

  • 创建您的文件custom.js
  • 在所有jquery插件之后调用custom.js

      

您的文件custom.js将是:

(function($) {
    $(document).ready(function() {
         /* insert here code above */   
    });
})(jQuery);

答案 2 :(得分:0)

创建按钮:

<button id="dontshow" onclick="dontshow();return false;">Don't show this again</button>

获取此插件:https://github.com/carhartl/jquery-cookie

在点击按钮上设置cookie:

function dontshow(){
    $.cookie('visited', 'yes', { expires: 30 }); // Set the cookie.
}

启动时,检查cookie是否存在:

$(document).ready(function() {
    var visited = $.cookie('visited');
    if (visited == 'yes') {
        $("#guidelinestext").hide();
    } else {
        $("#guidelinestext").show(); // cookie has no value, so show the text
    }
});