Установка Cookie для запоминания состояния выпадающего меню - JQuery - PullRequest
0 голосов
/ 21 сентября 2011

вот мой код:

$(document).ready(function() {
    $("#root ul").each(function() {$(this).css("display", "none");});
    $("#root .category").click(function() {
        var childid = "#" + $(this).attr("childid");
        if ($(childid).css("display") == "none")     {
            $(childid).css("display", "block");
        }
        else {
            $(childid).css("display", "none");
        }
        if ($(this).hasClass("cat_close")) {
            $(this).removeClass("cat_close").addClass("cat_open");}
        else {
            $(this).removeClass("cat_open").addClass("cat_close");
        }
    });
});

Можете ли вы помочь мне в создании / настройке файла cookie, который будет запоминать окно меню, которое было открыто после ухода со страницы или перехода по ссылке?Кстати, я хотел бы использовать плагин Jquery cookie.

Спасибо !!

1 Ответ

4 голосов
/ 21 сентября 2011

Использовать плагин jquery-cookie

Ваш код будет выглядеть (если я правильно понимаю, что здесь):

<script type="text/javascript">
    jQuery(document).ready(function () {

        var selectedId = jQuery.cookie('selected-sub-menu-id'); // get selected submenu id
        jQuery("#root ul").each(function () {
            if (jQuery(this).attr('id') != selectedId) {
                jQuery(this).css("display", "none");
            }
        });
        jQuery("#root .category").click(function () {
            var childid = "#" + jQuery(this).attr("childid");

            jQuery(childid).toggle();

            if (jQuery(this).hasClass("cat_close")) {
                jQuery(this).removeClass("cat_close").addClass("cat_open"); 
            }
            else {
                jQuery(this).removeClass("cat_open").addClass("cat_close");
            }
            jQuery.cookie('selected-sub-menu-id', childid.substring(1)); // set selected submenu id
        });

    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...