Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Добавления класса по клику на объект (с использованием cookie) (https://javascript.ru/forum/dom-window/69665-dobavleniya-klassa-po-kliku-na-obekt-s-ispolzovaniem-cookie.html)

Кристиан 10.07.2017 21:11

Добавления класса по клику на объект (с использованием cookie)
 
Здравствуйте. Я написал код, который меняет объект (его внешний вид) при нажатии на него и при повторном нажатии возвращает его обратно.
http://jsfiddle.net/GeniusG/s6mLJ/7516/
Но почему-то код не работает. Мне сказали добавить плагин для куки, но для меня самым лучшим ответом будет просто исправленная версия (весь день потратил на исправление ошибки, но тщетно). Спасибо.

laimas 10.07.2017 21:18

Зачем же nCount++; и if (nCount%2 != 0), если достаточно 0 и 1?
А вот jQ плагин кук, который используется да, нужно подключить, как и сам jQuery.
И можно проще:

var nCount = +$.cookie('user_count') || 0;

рони 10.07.2017 21:30

Кристиан,
1. какие проблемы, чтобы добавить плагин jquery.cookie?
2. сколько хранить значение user_count?

Кристиан 10.07.2017 21:33

Что нужно добавить (или исправить) в jsfiddle, чтобы хотя бы там заработало

рони 10.07.2017 21:39

Кристиан,
http://jsfiddle.net/s6mLJ/7518/

смотреть на лево External Resources

рони 10.07.2017 21:42

Кристиан,
сохранение на сутки, expires: 1,

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script>
$(function() {
    var nCount = $.cookie("user_count") != undefined ? $.cookie("user_count", Number) : 0;

    function open() {
        if (nCount % 2 != 0) {
            $("#menuicon a:before").addClass("bchanged");
            $("#menuicon a:after").addClass("achanged");
            $("span").addClass("schanged")
        } else {
            $("#menuicon a:before").removeClass("bchanged");
            $("#menuicon a:after").removeClass("achanged");
            $("span").removeClass("schanged")
        }
    }
    open();
    $("#menuicon").click(function() {
        nCount++;
        $.cookie("user_count", nCount, {
            expires: 1,
            path: "/"
        });
        open()
    })
});
</script>

Кристиан 10.07.2017 21:42

Вот проблема была в том, что не тот плагин был скачан

Кристиан 10.07.2017 23:11

Спасибо


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