Ich benutze LocalStorage, um ein Toggle-Banner offen/geschlossen zu halten. Leider konnte ich nicht korrekt eine offene Klasse auf dem Toggle # button des Banners implementieren, um den Stil entsprechend zu ändern.LocalStorage kann die Klasse 'open' nicht hinzufügen und behalten
mein Code:
$('#button').click(function() {
$(this).siblings().slideToggle(function() {
localStorage.setItem('display', $('#banner').is(':hidden'));
});
});
var block = localStorage.getItem('display');
if (block == 'true') {
$('#banner').hide()
}
mein html
<div id="banner_container">
<div id="banner">
<img src="#">
</div>
<button id="button" href="javascript:void(0);"></button> <!-- toggle 'open' class if banner is visible/hidden and keep it in LocalStorage -->
</div>
Ich versuchte, die toggleClass ($(this).toggleClass('open');
) an die slideToggle Funktion einstellen, aber dies scheint nicht der richtige Ansatz zu sein, wie es nicht ist korreliert mit dem LocalStorage-Verhalten. Irgendein Rat?
Wollen Sie nicht wissen, ob '$ ('# Banner') ist (': hidden').' Statt '$ (this) .ist (': Verstecktes ') ', das auf deinen Knopf verweist (von dem ich annehme, dass er immer als dein Schalter sichtbar ist)? – somethinghere
Korrigieren. aktualisiert den Post – user3615851
localStorage standardmäßig auf Zeichenfolgen, sofern nicht über JSON.parse analysiert. Davon abgesehen könnte dies ein Problem mit dem gleichen Betreiber sein. @ user3615851 hast du versucht mit ===? – rabruce