Вы можете установить куки с простым javascript, используя document.cookie
. Что касается вашего примера кода, я бы порекомендовал переместить функциональность darkMode (включить / отключить) в отдельные функции. Затем прочитайте значение cookie по окончании загрузки страницы и вызовите функции в зависимости от значения cookie.
Реализация логики cookie
function setCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
// the following code allows multiple cookie values and splits them apart
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
document.cookie = name+'=; Max-Age=-99999999;';
}
Функциональность DarkMode в отдельных функциях
function enableDarkMode() {
$( "body" ).addClass( "dark" );
$( ".inner-switch" ).text( "ON" );
setCookie('darkMode',"1",7);
}
function disableDarkMode() {
$( "body" ).removeClass( "dark" );
$( ".inner-switch" ).text( "OFF" );
setCookie('darkMode',"0",7);
}
Событие нажатия кнопки с использованием функций darkMode
$( ".inner-switch" ).on("click", function() {
if( $( "body" ).hasClass( "dark" )) {
disableDarkMode();
} else {
enableDarkMode();
}
});
Чтение файла cookie пристраница закончила загрузку (обычный js)
document.addEventListener("DOMContentLoaded", function(){
var darkMode = getCookie('darkMode');
if (darkMode == "1") {
// use darkmode
enableDarkMode();
} else {
// no darkmode
disableDarkMode();
}
});