Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Запись в cookie значения id (https://javascript.ru/forum/jquery/66198-zapis-v-cookie-znacheniya-id.html)

Warycooper 30.11.2016 15:04

Запись в cookie значения id
 
Есть два скрипта и кнопка которые меняют фон в заданном месте <div id="col">ТЕКСТ</div>

/* МЕНЯЕТ ФОН СТАТЬИ ПРИ НАЖАТИИ НА КНОПКУ */
window.onload = function() {
    document.getElementById('SuperButton').onclick = function()
    {
        if(document.getElementById('col').className != 'whitefon')
        {
            document.getElementById('col').className = 'whitefon';
        }
        else
        {
            document.getElementById('col').className = 'topic-content';
        }
    }
}

/* КНОПКА МЕНЯЮЩАЯ ФОН И САМУ СЕБЯ */
$(function(){
  $('.button1, .button2').click(function(){
    $('.button1, .button2').toggleClass('active');
  });
});


И сама кнопка, которая не только меняет фон в id=col, но и меняет текст и цвет при нажатии.

<div id="SuperButton" class="exemple">
<span class="button1 active">сделать белый фон</span>
<span class="button2">сделать тёмный фон</span>
</div>


Код:

.exemple {
 float: right;
 }
 
.imgEx1, .imgEx2 {
 display: none;
 }
 
/* КНОПКА ПЕРЕКЛЮЧЕНИЯ ФОНА */
.button1 {
 display: none;
 width: 160px;
 color: #000000;
 cursor: pointer;
 background: #ffffff;
 font-style: 8px;
 text-align: center;
 padding: 0px 0px 0px 0px;
 }
       
.button2 {
 display: none;
 width: 160px;
 color: #fff;
 cursor: pointer;
 background: #000000;
 font-style: 8px;
 text-align: center;
 padding: 0px 0px 0px 0px;
 }
 
.button1:hover, .button2:hover {
 opacity: 0.8;
 }
 
.active {
 display: block;
 }
 
/* ПЕРЕКЛЮЧАЕМЫЙ ФОН */
.whitefon {
 font-size: 14px;
 background-color: #ffffff;
 color: #000000;
 font-family: Verdana, "Helvetica Neue", Helvetica, Arial, sans-serif;
 line-height: 15pt;
 text-align: justify;
 padding: 10px 10px 10px;
 box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.02);
 }

Я не силён в программировании, только учусь, но уже голову сломал. Подскажите пожалуйста, как мне всё это записать в cookie? Что бы при одном клике по кнопке производилась запись в cookie, а при повторном удалялось.

ksa 30.11.2016 16:36

Цитата:

Сообщение от Warycooper
производилась запись в cookie

Вот хорошая статейка...
https://learn.javascript.ru/cookie
Там даже даны примеры функций для более простой работы с куками. ;)
Цитата:

Сообщение от Warycooper
при повторном удалялось

Как такового удаления кук из JS нет...
Можно записать "пусто". Или записать некое значение на ооочень короткий интервал хранения и по истечении этого времени кука "умрет"...
В статейке выше есть пример функции deleteCookie()...

laimas 30.11.2016 19:27

Цитата:

Сообщение от ksa
Как такового удаления кук из JS нет...

cookie-запись можно удалить прежде, чем истечет срок ее службы, для этого нужно установить для данной записи новый срок, уже прошедший относительно текущего времени и даты.

Warycooper 30.11.2016 20:08

Если зменять на пустое значение, то при повторном нажатии просто удалит класс whitefon? А какую часть кода записывать?

ksa 01.12.2016 09:20

Цитата:

Сообщение от laimas
cookie-запись можно удалить прежде, чем истечет срок ее службы, для этого нужно установить для данной записи новый срок, уже прошедший относительно текущего времени и даты.

Не умер Данила, а яром придавило...
Цитата:

Сообщение от ksa
Или записать некое значение на ооочень короткий интервал хранения и по истечении этого времени кука "умрет"...


laimas 01.12.2016 11:04

Не очень короткий, а меньше, зачем жизнь продлевать зря )

ksa 01.12.2016 11:37

laimas, я так же писал
Цитата:

Сообщение от ksa
В статейке выше есть пример функции deleteCookie()...


laimas 01.12.2016 14:12

Цитата:

Сообщение от ksa
я так же писал

Да?!! Ну значит я еврей :D

Warycooper 01.12.2016 14:40

Я по примерм и пробовал, но у меня перестаёт работать скрипт вообще.

ksa 01.12.2016 14:42

Цитата:

Сообщение от Warycooper
у меня перестаёт работать скрипт вообще

Значит пора делать тестовый пример! :D


Часовой пояс GMT +3, время: 07:24.