jQuery - 可以像会话一样使用的函数吗?

时间:2014-10-13 22:42:32

标签: jquery session

我有以下代码: -

jQuery(document).ready(function() {
    jQuery('.remove-me').bind( "click", function() {
        jQuery('#booking-alert').fadeOut(200);
    });
});

当用户点击“删除我”时,这基本上会淡出一个小窗口。元件。

我想要添加的内容是,如果用户决定隐藏div,它就知道用户之前已经点击过,因此不再显示该元素。

所以jQuery('#booking-alert').hide();

这可以使用会话来完成,还是有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以将此首选项存储在浏览器的localStorage中。

您可以使用以下方法检查浏览器的localStorage功能:

function supports_html5_storage() {
  try {
    return 'localStorage' in window && window['localStorage'] !== null;
  } catch (e) {
    return false;
  }
}

然后你可以使用吸气剂和放大器用于localStorage的setter来存储和检索信息。

//Getter
var foo = localStorage.getItem("bar");

// Setter
localStorage.setItem("bar", foo);

您可以在此处找到有关HTML5存储的更多信息:http://diveintohtml5.info/storage.html

所以在你的情况下你可以这样做:

 $(document).ready(function() {
    $('.remove-me').bind( "click", function() {
         jQuery('#booking-alert').fadeOut(200);
         localStorage.removeme = true;

     });


    //code to not show it in the first place:
    if (localStorage.removeme)
    {
       //something to hide the element if it was previously removed:
       $('#booking-alert').css("display","none");  
    }

 });

工作小提琴:http://jsfiddle.net/1a4otcs8/

答案 1 :(得分:0)

您可以使用不需要HTML5支持的Cookie来完成此操作。如果您还没有插件,可以下载here

//include plugin after the JQuery library
<script src="/path/to/jquery.cookie.js"></script>

jQuery(document).ready(function() {
    if ($.cookie('bookingalert') != 'true') {
        jQuery('.remove-me').bind( "click", function() {
            $.cookie('bookingalert', 'true'); //create the cookie when user clicks
            jQuery('#booking-alert').fadeOut(200);
        });
    }
});