【发布时间】:2018-08-11 22:27:28
【问题描述】:
所以我试图结合在 stackoverflow 上发布的三个问题的答案; Save current state after jquery click function、Save data to local storage 和 HTML5 local storage save .toggleClass。我想要做的是使用来自 jQuery 的 .one() 在两个类 onclick 之间切换。然后在切换类之后。
我想保存最后添加的课程。到目前为止,我的代码如下:
jQuery
$(".post-tag").one('click', function() {
$(this).find('i').toggleClass('fa-meh fa-smile-beam text-warning text-success');
var likeState = $(this).find('i').hasClass('fa-smile-beam');
localStorage.setItem('liked', likeState);
var likedStorage = localStorage.getItem('liked');
if(likedStorage && $(this).find('i').hasClass('fa-smile-beam')) {
$(this).find('i').removeClass('fa-meh')
}
});
HTML
<div class="post-tag-wrapper">
<div class="post-tag shadow">
<i class="far fa-meh text-warning"></i>
</div>
</div>
我怎样才能做到这一点?
注意:我知道如果我将类添加到
FieldObject;例如,如果使用MongoDB;默认为fa-meh和onclick使用一些AJAX会将Object中的Field更新为fa-smile-beam。但需要使用LocalStorage。注意: 根据MDN,LocalStorage 违反了政策决定,所以 这不是节省用户交互的做法。
【问题讨论】:
-
我想了解您为什么要尝试将类状态保存到本地存储中?这是什么提议?跨页面加载保持状态?或者你想要完成什么?可能有更好的方法。
-
@Amir 我正在尝试为初始状态为
fa-meh的帖子创建一个like button,当单击该类更改为fa-smile-beam时,当我刷新页面时,该类是仍然是fa-smile-beam不是fa-meh。这是一条有用的评论吗? -
@Amir 我知道如果我将类添加到
Field中的Object中是可行的;例如,如果使用 MongoDB;默认为fa-meh和onclick使用一些AJAX会将Object中的Field更新为fa-smile-beam。但我需要使用LocalStorage来完成它。
标签: javascript jquery bootstrap-4 local-storage session-storage