我有3个选项卡:'星期一','星期二'和'收藏夹'。每个选项卡包含开始处都有空心的框('.favorite i')。我想在刷新后保存当前的切换类。如何在本地存储页面刷新后记住当前切换状态?
切换:
heartLink.find('i').toggleClass('fa-heart-o fa-heart'); // .selected or not
我已经开始与:
if (heartLink.find('i').hasClass('fa-heart-o')) {
localStorage.setItem('displayIcon', 0);
} else {
localStorage.setItem('displayIcon', 1);
}
然后,我知道我需要一些与此类似,但不知道该怎么做..
为了表明:我想保存每个特定心脏的当前状态。我没有一个图标影响所有框。
var showIconToggle = localStorage.getItem('displayIcon');
if (showIconToggle == 'true') {
// some code
}
HTML:
<section id="speakers-programme">
<div class="container">
<div class="tabs_main">
<div class="col-md-5"><a data-target="#mon" class="btn active" data-toggle="tab">Monday</a></div>
<div class="col-md-5"><a data-target="#tue" class="btn active" data-toggle="tab">Tuesday</a></div>
<div class="col-md-2"><a data-target="#fav" class="btn active" data-toggle="tab"><i class="fa fa-heart" aria-hidden="true"></i></a></div>
</div>
<div class="tab-content">
<div class="tab-pane active" id="mon">
<br>
<div class="spaces">
<div class="box-container">
<div class="box not-selected" id="box1">
<a href="#" class="favorite"><i class="fa fa-heart-o" aria-hidden="true"></i></a>
</div>
</div>
<div class="box-container">
<div class="box not-selected" id="box2">
<a href="#" class="favorite"><i class="fa fa-heart-o" aria-hidden="true"></i></a>
</div>
</div>
</div>
</div>
<div class="tab-pane active" id="tue">
<br>
<div class="spaces">
</div>
</div>
<div class="tab-pane active" id="fav">
<br>
<div class="spaces">
</div>
</div>
</div>
</div>
</section>
JS:
$('div.tab-pane').on('click', '.favorite', function(e) {
e.preventDefault();
var heartLink = $(this);
//TOGGLE FONT AWESOME ON CLICK
heartLink.find('i').toggleClass('fa-heart-o fa-heart'); // .selected or not, you need those 2 classes to toggle.
if (heartLink.find('i').hasClass('fa-heart-o')) {
localStorage.setItem('displayIcon', 0);
} else {
localStorage.setItem('displayIcon', 1);
}
});
var showIconToggle = localStorage.getItem('displayIcon');
if (showIconToggle == 'true') {
// some code here
}
小提琴:https://fiddle.jshell.net/itsfranhere/1q93a6x1/9/
您需要将其保存在localStorage的还是你内心的3个不同的密钥可以使用位掩码将其保存在一个变量中。这取决于你的风格和知识。 –
感谢您的回复@JoshuaK您能否告诉我一种做法?正如我所提到的,我似乎无法达到我想要的结果。如果你可以请看看小提琴。 –
添加了一个将其存储在一个变量中的解决方案。通过这种方式,你不需要每个心脏都有一个ID,localStorage保持干净并且没有充满每个心脏的状态变量。 (只是给定的答案和加入答案) –