I am basically setting up a dark mode switch to my site and I want the browser to remember user click from dark to light theme. Code somewhat breakup and not clean but anyhow it works in changing dark & light mode style sheets.
<link rel='stylesheet' id='3432-css' href='//site-url.org.in/wp-content/uploads/custom-css-js/3432.css?v=3920' type="text/css" media='all' />
<link rel='stylesheet' id='3428-css' href='//site-url.org.in/wp-content/uploads/custom-css-js/3428.css?v=2941' type="text/css" media='all' />
<div id="switch" class="toggle">
<div class="in-toggle tg-left">
<input type="checkbox">
</div>
</div>
JavaScript:
jQuery(document).ready(function($){
var toggle_btn = $(".toggle .in-toggle input");
var i_tg = $(".in-toggle");
var toggle = $(".toggle");
toggle_btn.on("click", clicked);
function clicked() {
if (toggle_btn.is(":checked")) {
i_tg.addClass("tg-right");
toggle.addClass("clicked");
} else {
i_tg.removeClass("tg-right");
toggle.removeClass('clicked');
}
}
var switch_mode = 'dark';
document.getElementById('switch').onclick = function(){
if(switch_mode == 'dark'){
document.getElementById('3428-css').setAttribute('href','');
document.getElementById('3432-css').setAttribute('href','//site-url.org.in/wp-content/uploads/custom-css-js/3432.css');
switch_mode = 'light';
} else {
document.getElementById('3428-css').setAttribute('href','//site-name.org.in/wp-content/uploads/custom-css-js/3428.css');
document.getElementById('3432-css').setAttribute('href','');
switch_mode = 'dark';
}
}
});
How can I save the toggle on user interaction until the toggle is switched back? This is all for non logged in user so local storage or cookie sessions can be helpful.