我有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保持乾淨並且沒有充滿每個心臟的狀態變量。 (只是給定的答案和加入答案) –