Reputation: 13
I have a simple Question How to keep the Sidebar Toggled when refresh the page please!! I know there is a simple trick called LocalStorage But i don't know How to apply it in my jQuery Code !!
HTML Code
<button type="button" id="ToggleButton" class="btn btn-primary">
<span class="mr-1 icon_toggler"><i class="ion ion-md-radio-button-off"></i></span> Click here
</button>
<div id="wrapper" class="vh-100">
<h1>Hello World</h1>
<p>Hello , Hello</p>
</div>
<style>
#wrapper {
background: blue;
color: dark;
}
#wrapper .is_toggled {
background: red;
color: white;
}
</style>
JS Code
$(document).ready(function() {
function ToggleHandle() {
$('#wrapper').toggleClass('is_toggled');
}
if (window.localStorage.getItem('toggle-switch-state') && window.localStorage.getItem('toggle-switch-state') === "true") {
ToggleHandle();
}
$(document).on("click", "#ToggleButton", function (toggle_x) {
toggle_x.preventDefault();
$('.icon_toggler').find('.ion').toggleClass('ion-md-radio-button-off ion-md-radio-button-on');
if ($('.icon_toggler').find('.ion').hasClass('ion-md-radio-button-on')) {
$($(this)).css("color", "var(--primary)");
} else if ($('.icon_toggler').find('.ion').hasClass('ion-md-radio-button-off')) {
$($(this)).css("color", "var(--dark)");
}
ToggleHandle();
});
});
Upvotes: 1
Views: 656
Reputation: 831
First you have to set the localStorage item (https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem).
window.localStorage.setItem(keyName, keyValue);
In your code,
$(document).ready(function() {
function ToggleHandle() {
$('#wrapper').toggleClass('is_toggled');
}
// Has it been stored?
if (window.localStorage.getItem('toggle-switch-state') === 'true') {
ToggleHandle();
}
$(document).on('click', '#ToggleButton', function (toggle_x) {
toggle_x.preventDefault();
// If not stored before then store it.
if (!window.localStorage.getItem('toggle-switch-state'))
{
window.localStorage.setItem('toggle-switch-state', 'true')
}
$('.icon_toggler').find('.ion').toggleClass('ion-md-radio-button-off ion-md-radio-button-on');
if ($('.icon_toggler').find('.ion').hasClass('ion-md-radio-button-on')) {
$($(this)).css('color', 'var(--primary)');
} else if ($('.icon_toggler').find('.ion').hasClass('ion-md-radio-button-off')) {
$($(this)).css('color', 'var(--dark)');
}
ToggleHandle();
});
});
Upvotes: 1