Есть вод такой скрипт:
<script>
function _setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
function show_hide(num_id) {
var divstyle = new String();
divstyle = document.getElementById(num_id).style.display;
if (divstyle.toLowerCase() == "none" || divstyle == "") {
document.getElementById(num_id).style.display="block";
var date = new Date( new Date().getTime() + 1000*60*60*24*365); // ставим куку на 365 дней
_setCookie(num_id, escape("block"), date.toUTCString(), "/");
} else {
document.getElementById(num_id).style.display="none";
var date = new Date( new Date().getTime() + 1000*60*60*24*365); // ставим куку на 365 дней
_setCookie(num_id, escape("none"), date.toUTCString(), "/");
}
}
</script>
<div onclick="show_hide('block_1');">click</div>
<div id="block_1" style="display:<?=isset($_COOKIE['block_1'])? $_COOKIE['block_1'] : 'none'; ?>">content 1 по умолчанию скрыт</div>
<br />
<div onclick="show_hide('block_2');">click</div>
<div id="block_2" style="display:<?=isset($_COOKIE['block_2'])? $_COOKIE['block_2'] : 'none'; ?>">content 2 по умолчанию скрыт</div>
<br />
<div onclick="show_hide('block_3');">click</div>
<div id="block_3" style="display:<?=isset($_COOKIE['block_3'])? $_COOKIE['block_3'] : 'block'; ?>">content 3 по умолчанию показан</div>
<br />
<div onclick="show_hide('block_4');">click</div>
<div id="block_4" style="display:<?=isset($_COOKIE['block_4'])? $_COOKIE['block_4'] : 'block'; ?>">content 4 по умолчанию показан</div>
Начал переделывать под свои нужны чтобы не только скрывать блоки, но и менять иконку на кнопке для возврата блока обратно, но столкнулся с двумя проблемами:
1) Как нормально передать класс, а не стиль я так и не понял, оно всего лишь возвращает один раз и то не верно: glyphicon
%20glyphicon-minus
Кусок кода:
<span id="span_pm" class="<?=isset($_COOKIE['span_pm'])? $_COOKIE['span_pm'] : 'glyphicon glyphicon-minus'; ?>" ></span>
2) Я не уверен что я правильно делаю это для смены класса, потому что если даже прописать название класса без пробела, оно возвращает один раз, при этом при нажатии но кнопку сам класс не меняется, но блок при этом скрывается