提问者:小点点

如何在会话存储中保存数据并在以后获取?


我想在单击后保存数据(例如:Deutsch)我给每个都赋予了不同的ID。 确切的身份并不重要。 我还添加了onclick=“reply_click(this.id)”,以便以后通过变量获取id:

$(document).ready(function() {
      $(".fach").on("click", function() {
        function reply_click(clicked_id){
          sessionStorage.setItem('fach', clicked_id);
          $(clicked_id).toggleClass("open");
        }
      });
    });

$(document).ready(function() {
          $(".stufe").on("click", function() {
            var clicked_id = $(this).attr('id');
            sessionStorage.setItem('stufe', clicked_id);
            $(clicked_id).toggleClass("open");
          });
        });

在将其保存到会话存储中之后,我想再次获取它并将其插入到重定向链接中:

var stufe = sessionStorage.getItem('stufe');
var fach = sessionStorage.getItem('fach');

    if(stufe != null){

        if(fach != null){

           window.location.replace('../learn/' + stufe + '/' + fach + '/');
        }
    }

另外,我希望在刷新后清除sessionStorage:

function CallbackFunction(event) {
   if (window.event) {
       if (window.event.clientX < 40 && window.event.clientY < 0) {
         sessionStorage.clear();
       } else{
         sessionStorage.clear();
         }
    } else{

    }
 }

当为某个切换类“Open”时,我希望背景变为红色:

#class-5 .open, #class-6 .open, #class-7 .open, #class-8 .open, #class-9 .open, #class-10 .open, #class-k1 .open, #class-k2 .open{
  background: #cb002d;
  color: white;
}

但奇怪的是,什么都不管用。 是我的错误吗? 如果有任何信息缺失,请告诉我。

希望你能帮我-丹尼尔。


共2个答案

匿名用户

由于您的a标记已经有了click事件,因此可以从HTML中删除onclick:

<a class="fach" id="deutsch" href="#"> Deutsch </a>

然后,在click事件中,您可以直接获取被单击元素的id并将其保存到本地存储:

$(document).ready(function() {
  $(".fach").on("click", function() {
      var clicked_id = $(this).attr('id');
      sessionStorage.setItem('fach', clicked_id);
      $('#' + clicked_id).toggleClass("open");
  });
});

注意:当您要将类分配给元素时,不要在HTML中使用点.。 请使用class=“fach”而不是class=“。fach”

如果您希望您的元素切换open类,您所要做的就是为open添加一个CSS规则:

.open{
  background: #cb002d;
  color: white;
}

匿名用户

stufe从来不是空的吗? 你不应该有两个。就绪函数。 只要有一个,同时调用里面的所有东西。

$(document).ready(function() {
      $(".fach").on("click", function() {
        function reply_click(clicked_id){
          sessionStorage.setItem('fach', clicked_id);
          $(clicked_id).toggleClass("open");
        }
      });
     $(".stufe").on("click", function() {
            var clicked_id = $(this).attr('id');
            sessionStorage.setItem('stufe', clicked_id);
            $(clicked_id).toggleClass("open");
          });
        });

另外,toggleclass需要两个类:

.toggleclass('open','classWithRedBackground')

我在css中没有看到红色背景的类--它没有被分配--它也没有被定义