С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/26: Рейтинг темы: голосов - 26, средняя оценка - 4.58
9 / 9 / 1
Регистрация: 24.02.2013
Сообщений: 59

Прикрутка cookies к меню на jquery

24.02.2013, 16:11. Показов 5386. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Вопрос вот в чем. Есть вертикально меню, аккордеон, несколько уровней. Но нужно сделать так, чтобы при открытии уровня и после перехода по ссылке, уровень оставался открытым. Знаю, что нужно прикрутить jquery.cookies, но вопрос в том, как это сделать?
Вот код:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<div class="topnav">
<ul>
<li><a href="#">Металл</a></li>
    <li><a href="#">Металл и арматура</a>
        <ul>
             <li><a href="#">Арматура</a></li>
             <li><a href="#">Труба профильная</a></li>
             <li><a href="#">Проволока вязальная</a></li>
             <li><a href="#">Уголок</a></li>
             <li><a href="#">Электроды</a></li>
        </ul>
    </li>
        <li><a href="#">Металл и арматура</a>
        <ul>
             <li><a href="#">Арматура</a></li>
             <li><a href="#">Труба профильная</a></li>
             <li><a href="#">Проволока вязальная</a></li>
             <li><a href="#">Уголок</a></li>
             <li><a href="#">Электроды</a></li>
        </ul>
    </li>
    <li><a href="#">Металл и арматура</a>
        <ul>
             <li><a href="#">Арматура</a></li>
             <li><a href="#">Труба профильная</a></li>
             <li><a href="#">Проволока вязальная</a></li>
             <li><a href="#">Уголок</a></li>
             <li><a href="#">Электроды</a></li>
        </ul>
    </li>
        <li><a href="#">Металл и арматура</a>
        <ul>
             <li><a href="#">Арматура</a></li>
             <li><a href="#">Труба профильная</a></li>
             <li><a href="#">Проволока вязальная</a></li>
             <li><a href="#">Уголок</a></li>
             <li><a href="#">Электроды</a></li>
        </ul>
    </li>
    <li><a href="#">Металл и арматура</a>
        <ul>
             <li><a href="#">Арматура</a></li>
             <li><a href="#">Труба профильная</a></li>
             <li><a href="#">Проволока вязальная</a></li>
             <li><a href="#">Уголок</a></li>
             <li><a href="#">Электроды</a></li>
        </ul>
    </li>
    <li><a href="#">Металл и арматура</a>
        <ul>
             <li><a href="#">Арматура</a></li>
             <li><a href="#">Труба профильная</a></li>
             <li><a href="#">Проволока вязальная</a></li>
             <li><a href="#">Уголок</a></li>
             <li><a href="#">Электроды</a></li>
        </ul>
    </li>
    <li><a href="#">Металлические</a>
        <ul>
             <li><a href="#">Сетка кладочная</a></li>
             <li><a href="#">Сетка  рабица</a></li>
             <li><a href="#">Сетка штукатурная</a>
                <ul>
                    <li><a href="#">Сетка штукатурная 1</a></li>
                    <li><a href="#">Сетка штукатурная 2</a></li>
                    <li><a href="#">Сетка штукатурная 3</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
.topnav {
        background: #d3d3d3;
        width: 268px;
        padding:0;  
        list-style:none;
}
 
.topnav ul{
    padding: 0;
    margin: 0;
    font-size: 1em;
    line-height: 0.5em;
    list-style: none;
}
 
.topnav li {
    width:268px;
    list-style: none;
    background:#a5a5a5;
    margin-top:4px;
    margin-bottom:4px;
    }
 
.topnav li a {
            display: block;
            line-height: 15px;
            padding:15px 15px 15px 7px;
            color:#000000;
            width: 253px;
            height: auto;
            text-decoration: none;
            font-size: 13px;
            font-weight: normal;
            outline:none;
}
 
.topnav li a:hover {
            display: block;
            color:#424242;
            text-decoration:none;
}
 
.topnav ul ul {
            background:#ededed;
            width:268px;
            padding: 5px 0 0px 0;
            display:none;
}
 
.topnav ul ul li {
    margin: 0;
    padding: 0;
    clear: both;
    margin-bottom:3px;
}
 
.topnav ul ul li a {
                width:261px;
                height: auto !important;
                border-left:2px solid #000000;
                 padding:7px 0px 7px 6px;
                line-height: 12px;
                text-decoration: none;
                color: #000;
                text-indent:0px;
                font-size:12px;
                background: #bfc0c0;
 
}
 
.topnav ul ul li.active a {
                color: #000;
                font-weight: bold;
}
 
.topnav ul ul li a:hover {
            background: #cbcccc;
            padding:7px 0px 7px 6px;
            border-left:2px solid #000000;
                width:261px;
                height: auto !important;
                line-height: 12px;
                color: #424242;
                font-size:12px;
}
 
.topnav ul ul ul li a {
    width:252px;
    background-color:#cbcccc;
    border-left:2px solid #6a6a6a;
    color:#000000;
    padding-left:15px;
}
 
.topnav ul ul ul li a:hover {
width:252px;
    background-color:#cbcccc;
    padding-left:15px;
    color:#675C7C;
}
 
.topnav ul span{float: left;clear:both; padding-right:10px; }
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
 * jQuery UI Multilevel Accordion v.1
 * 
 * Copyright (c) 2011 Pieter Pareit
 *
 * [url]http://www.scriptbreaker.com[/url]
 *
 */
 
//plugin definition
 
(
 
function($){
    $.fn.extend({
 
    //pass the options variable to the function
    accordion: function(options) {
        
        var defaults = {
            accordion: 'true',
            speed: 300,
            closedSign: '[+]',
            openedSign: '[-]'
        };
 
        // Extend our default options with those provided.
        var opts = $.extend(defaults, options);
        //Assign current element to variable, in this case is UL element
        var $this = $(this);
        
        //add a mark [+] to a multilevel menu
        $this.find("li").each(function() {
            if($(this).find("ul").size() != 0){
                //add the multilevel sign next to the link
                $(this).find("a:first").append("<span>"+ opts.closedSign +"</span>");
                
                //avoid jumping to the top of the page when the href is an #
                if($(this).find("a:first").attr('href') == "#"){
                    $(this).find("a:first").click(function(){return false;});
                }
            }
        });
 
        //open active level
        $this.find("li.active").each(function() {
            $(this).parents("ul").slideDown(opts.speed);
            $(this).parents("ul").parent("li").find("span:first").html(opts.openedSign);
        });
 
        $this.find("li a").click(function() {
            if($(this).parent().find("ul").size() != 0){
                if(opts.accordion){
                    //Do nothing when the list is open
                    if(!$(this).parent().find("ul").is(':visible')){
                        parents = $(this).parent().parents("ul");
                        visible = $this.find("ul:visible");
                        visible.each(function(visibleIndex){
                            var close = true;
                            parents.each(function(parentIndex){
                                if(parents[parentIndex] == visible[visibleIndex]){
                                    close = false;
                                    return false;
                                }
                            });
                            if(close){
                                if($(this).parent().find("ul") != visible[visibleIndex]){
                                    $(visible[visibleIndex]).slideUp(opts.speed, function(){
                                        $(this).parent("li").find("span:first").html(opts.closedSign);
                                    });
                                    
                                }
                            }
                        });
                    }
                }
                if($(this).parent().find("ul:first").is(":visible")){
                    $(this).parent().find("ul:first").slideUp(opts.speed, function(){
                        $(this).parent("li").find("span:first").delay(opts.speed).html(opts.closedSign);
                    });
                    
                    
                }else{
                    $(this).parent().find("ul:first").slideDown(opts.speed, function(){
                        $(this).parent("li").find("span:first").delay(opts.speed).html(opts.openedSign);
                    });
                }
            }
        });
    }
});
})(jQuery);

http://jsfiddle.net/sWrkH/2/
(меню работает хорошо, просто фиддл что-то недоработал)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2013, 16:11
Ответы с готовыми решениями:

Прикрутка cookies к меню
День добрый, не выходит грамотно прикрутить jquery.cookies к раскрывающемуся меню . Нужно чтобы при открытии подуровня и перехода по...

Как прикрутить cookies к меню на jQuery
Здравствуйте программисты. Никак не могу прикрутить куки к меню с выпадающим списком (аккордионом) сделанном на jQuery, чтобы при открытии...

Cookies в JQuery
Такая проблема - делаю таймер обратного отсчета, но с использованием cookies, чтобы таймер не начинался заново при перезагрузке страницы....

12
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
24.02.2013, 20:12
dartwlad, не работает Ваше меню. В добавлении сообщений кликните Расширенный режим и 'скрепочкой' прикрепите архив с рабочим примером, тогда можно будет думать о куках.

Если хотите попробовать сами, то нужно использовать плагин jquery.cookie.js. Здесь пример и скачать можно.

И ещё, нужно скрипт написать в котором выбрать каждый раскрывающийся UL (можно и все UL в меню).
Получить у каждого выбранного элемента свойство display и записать в куки. И вторая часть - это обратная процедура, извлечь куки и свойства присвоить всем UL. Эту вторую часть записать в верху кода, а первую записать в клик. Переходим на новую страницу. И всем блокам будут присвоены свои свойства. Тот, что был открыт и будет открыт.
По клику запустим функцию записи куков с задержкой - чтобы завершились все процессы открывания и закрывания.
( можно всем UL, которые раскрываются присвоить общий класс или всем ссылкам которые не переходят а расскрывают меню - общий класс и работать с этим классом )
Попробуйте такой код

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<script type="text/javascript">
 $(document).ready(function(){
 
// вывод кук и запись свойств раскрывающихся UL
 
    var b=0;
$('.topnav ul').prev('a').each (function(){
 $(this).next('ul').css('display',$.cookie("openUl"+b));
b++;    
 });    
 
 
// по клику с задержкой перезаписываем куки  
 var i; 
 $('.topnav ul').prev('a').click(function(e){
 e.preventDefault();
  
setTimeout(fncookie, 400);// задержка 0.4 секунды у Вакс может быть меню раскрываются с другой скоростью
});
 
 
// функция записи свойств в куки
 
function fncookie(){  
 $('.topnav ul').prev('a').each (function(){
 var cocD=$(this).next('ul').css('display');
$.cookie("openUl"+i, cocD);
i++;
 });
} 
    
 
 
});/*end  ready*/
</script>
Та как Ваш код у меня не заработал, то я написал свой, но упростил немного меню - убрал двухуровневые пункты, чтобы код упростился. На запись кук это не влияет. Выберутся те что надо и на втором уровне.
Демо-страница
1
9 / 9 / 1
Регистрация: 24.02.2013
Сообщений: 59
25.02.2013, 00:17  [ТС]
Soldado, меню работает, пример на http://u4ebagermania.ru/ , и уровня надо 3. сейчас мы не говорим о исходном коде, а говорим о том, как мне к существуючему прикрутить кукишы.
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
25.02.2013, 01:01
Я выложил код. Должно работать для любого количества уровней. Я отбираю все ссылки после которых идёт ul
JavaScript
1
$('.topnav ul').prev('a')
Это ссылки, которые открывают меню. После каждого клика заношу в куки свойство display UL.


Я вам дал код и продемонстрировал, что код рабочий. Этот код - для Вашего меню. Вставляйте его целяком в каждую страницу (если набор страниц), как это сделал я на своей демонстрации, если движок используете, то какой?
Дайте подробности. Не будет этого - Вам никто не сможет помочь


Я так и не понял с чем Вы работаете, в чём у Вас затруднение?
1
9 / 9 / 1
Регистрация: 24.02.2013
Сообщений: 59
25.02.2013, 19:25  [ТС]
Soldado, добрый день! Спасибо, конечно, за код и за помощь, но у вопрос у меня был очень простой Не надо было полностью переделывать код, потому что тот код, который у меня, работает хорошо. И то ваше меню хорошее, но все равно с 3 уровнями не работает, и сворачивается предыдущий пункт, когда открываешь следующий. Все, что я у вас попрошу - это просто приделать к этому коду, который я прикрепил, куки. Буду просто очень благодарен)(спасибо и за всю помощь и сприяние, которое вы сделали уже до этого)
Вот и сам код, в который нужно вставить функции куки:
Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
 * jQuery UI Multilevel Accordion v.1
 * 
 * Copyright (c) 2011 Pieter Pareit
 *
 * [url]http://www.scriptbreaker.com[/url]
 *
 */
 
//plugin definition
(function($){
    $.fn.extend({
 
    //pass the options variable to the function
    accordion: function(options) {
        
        var defaults = {
            accordion: 'true',
            speed: 300,
            closedSign: '[+]',
            openedSign: '[-]'
        };
 
        // Extend our default options with those provided.
        var opts = $.extend(defaults, options);
        //Assign current element to variable, in this case is UL element
        var $this = $(this);
        
        //add a mark [+] to a multilevel menu
        $this.find("li").each(function() {
            if($(this).find("ul").size() != 0){
                //add the multilevel sign next to the link
                $(this).find("a:first").append("<span>"+ opts.closedSign +"</span>");
                
                //avoid jumping to the top of the page when the href is an #
                if($(this).find("a:first").attr('href') == "#"){
                    $(this).find("a:first").click(function(){return false;});
                }
            }
        });
 
        //open active level
        $this.find("li.active").each(function() {
            $(this).parents("ul").slideDown(opts.speed);
            $(this).parents("ul").parent("li").find("span:first").html(opts.openedSign);
        });
 
        $this.find("li a").click(function() {
            if($(this).parent().find("ul").size() != 0){
                if(opts.accordion){
                    //Do nothing when the list is open
                    if(!$(this).parent().find("ul").is(':visible')){
                        parents = $(this).parent().parents("ul");
                        visible = $this.find("ul:visible");
                        visible.each(function(visibleIndex){
                            var close = true;
                            parents.each(function(parentIndex){
                                if(parents[parentIndex] == visible[visibleIndex]){
                                    close = false;
                                    return false;
                                }
                            });
                            if(close){
                                if($(this).parent().find("ul") != visible[visibleIndex]){
                                    $(visible[visibleIndex]).slideUp(opts.speed, function(){
                                        $(this).parent("li").find("span:first").html(opts.closedSign);
                                    });
                                    
                                }
                            }
                        });
                    }
                }
                if($(this).parent().find("ul:first").is(":visible")){
                    $(this).parent().find("ul:first").slideUp(opts.speed, function(){
                        $(this).parent("li").find("span:first").delay(opts.speed).html(opts.closedSign);
                    });
                    
                    
                }else{
                    $(this).parent().find("ul:first").slideDown(opts.speed, function(){
                        $(this).parent("li").find("span:first").delay(opts.speed).html(opts.openedSign);
                    });
                }
            }
        });
    }
});
})(jQuery);
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
25.02.2013, 23:40
У меня, как я не старался Ваш код не работает, потому, я и написал свой упрощённый не с целью заменить Ваш код я для того, чтобы продемонстрировать код с куками.

А Вам пытался сказать, что скрипт работы с куками не нужно интегрировать - это отдельный скрипт и его нужно только вставить в код или записать в отдельный файл и подключить этот файл в хедере.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!--Скрипт использования куки-->
 <script type="text/javascript">
 $(document).ready(function(){
 var b=0;
$('.topnav ul').prev('a').each (function(){
 $(this).next('ul').css('display',$.cookie("openUl"+b));
b++;    
 });
 
 var i; 
 $('.topnav ul').prev('a').click(function(e){
 e.preventDefault();
 setTimeout(fncookie, 400);
  i=0;
});
 
 
function fncookie(){  
 $('.topnav ul').prev('a').each (function(){
 var cocD=$(this).next('ul').css('display');
$.cookie("openUl"+i, cocD);
i++;
 });
}
 
    
});/*end  ready*/
</script>
<!--Конец скрипта использования куки-->
Добавлено через 5 минут
Не знаю почему Ваш не работает у меня, потому и просил выложить архив, я бы всё распаковал посмотрел на Ваш рабочий вариант и "прикрутил" к нему куки, чтобы уже быть уверенным на все сто, что мой код универсален и подходит к меню с различным количеством уровней. Пока я предполагаю, что всё работает.
1
9 / 9 / 1
Регистрация: 24.02.2013
Сообщений: 59
26.02.2013, 00:06  [ТС]
Soldado, спасибо большое за то, что пояснили. поставил код отдельно на виртуалку и на сайт, почти работает, за исключением того, что когда открываешь пункт, потом закрываешь, и когда обновляешь страницу, тот пункт снова открывается, хотя и запоминает последний. чистое меню приложил с сообщением, как и просили. думаю этот баг легко убрать, пример с вашим кодом кукис http://u4ebagermania.ru/index.php . еще раз большое спасибо, что помогаете!)
Вложения
Тип файла: rar menu.rar (32.1 Кб, 86 просмотров)
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
26.02.2013, 00:41
Цитата Сообщение от dartwlad Посмотреть сообщение
почти работает, за исключением того, что когда открываешь пункт, потом закрываешь, и когда обновляешь страницу, тот пункт снова открывается, хотя и запоминает последний.
Я уже писал по этому поводу:
Цитата Сообщение от Soldado Посмотреть сообщение
По клику запустим функцию записи куков с задержкой - чтобы завершились все процессы открывания и закрывания.
Я установил задержку в 400 милисекунд под свой вариант, в Вашем меню закрывание происходит не так быстро, через 400 милисекунд куки записываются, а меню ещё не закрылось, надо увеличить время. Найдите строку
JavaScript
1
setTimeout(fncookie, 400);
Запишите в ней 600 - попробовал вроде нормально. А спасибки кликайте кнопкой.

Пишите, всё ли как надо?

Добавлено через 5 минут
А у меня раньше Ваш код не работал, так как Вы не выложили инициализацию

JavaScript
1
2
3
4
5
6
$(".topnav").accordion({
        accordion:false,
        speed: 500,
        closedSign: '[+]',
        openedSign: '[-]'
    });
1
9 / 9 / 1
Регистрация: 24.02.2013
Сообщений: 59
26.02.2013, 00:41  [ТС]
Soldado, все работает! Спасибо большое) Конечно, что кликну, если бы было можно, хоть бы 100 накликал) Еще раз большоееее спасибооо!
0
Anvarich
25.01.2014, 15:08
Dartwlad доброго дня Вам! Хотел попросить Вас дать исходники этого меню если Вам нетрудно, уже нет надежды, Вы мой последний шанс... У меня точно такое же меню аккордеон и задача такая же сделать так что бы вкладка оставалась открытой после перехода по ссылке.
Создавать точно такую же тему думаю нет смысла если здесь все перебрали...
9 / 9 / 1
Регистрация: 24.02.2013
Сообщений: 59
25.01.2014, 15:16  [ТС]
Anvarich,
кажется так
Вложения
Тип файла: rar menu.rar (32.2 Кб, 110 просмотров)
0
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 3
28.09.2016, 13:49
dartwlad, Попробовал сделать меню, как у Вас не получается почему то.
Пробовал такие варианты:
1 вариант - Скрипт с куками отдельно и подключать
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript" src="res/js/cookie.js"></script>
<script language="JavaScript">
$(document).ready(function() {
    $(".topnav").accordion({
        accordion:false,
        speed: 500,
        closedSign: '[+]',
        openedSign: '[-]'
    });
});
 
</script>
cookie.js - такой:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// JavaScript Document
<!--Скрипт использования куки-->
 
 $(document).ready(function(){
 var b=0;
$('.topnav ul').prev('a').each (function(){
 $(this).next('ul').css('display',$.cookie("openUl"+b));
b++;    
 });
 
 var i; 
 $('.topnav ul').prev('a').click(function(e){
 e.preventDefault();
 setTimeout(fncookie, 400);
  i=0;
});
 
 
function fncookie(){  
 $('.topnav ul').prev('a').each (function(){
 var cocD=$(this).next('ul').css('display');
$.cookie("openUl"+i, cocD);
i++;
 });
}
 
    
});/*end  ready*/
2 вариант - Оба кода в header но в отдельных тегах:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<script language="JavaScript">
$(document).ready(function() {
    $(".topnav").accordion({
        accordion:false,
        speed: 500,
        closedSign: '[+]',
        openedSign: '[-]'
    });
});
</script>
 
<script type="text/javascript">
 $(document).ready(function(){
 var b=0;
$('.topnav ul').prev('a').each (function(){
 $(this).next('ul').css('display',$.cookie("openUl"+b));
b++;    
 });
 
 var i; 
 $('.topnav ul').prev('a').click(function(e){
 e.preventDefault();
 setTimeout(fncookie, 600);
  i=0;
});
 
 
function fncookie(){  
 $('.topnav ul').prev('a').each (function(){
 var cocD=$(this).next('ul').css('display');
$.cookie("openUl"+i, cocD);
i++;
 });
}
 
    
});/*end  ready*/
</script>
3 вариант - Оба кода в header и в одном теге:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<script language="JavaScript">
 $(document).ready(function(){
 var b=0;
$('.topnav ul').prev('a').each (function(){
 $(this).next('ul').css('display',$.cookie("openUl"+b));
b++;    
 });
 
 var i; 
 $('.topnav ul').prev('a').click(function(e){
 e.preventDefault();
 setTimeout(fncookie, 600);
  i=0;
});
 
 
function fncookie(){  
 $('.topnav ul').prev('a').each (function(){
 var cocD=$(this).next('ul').css('display');
$.cookie("openUl"+i, cocD);
i++;
 });
}
 
    
});/*end  ready*/
$(document).ready(function() {
    $(".topnav").accordion({
        accordion:false,
        speed: 500,
        closedSign: '[+]',
        openedSign: '[-]'
    });
});
 
</script>
Но ничего не получается Подскажите пожалуйста где я ошибаюсь?
0
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 3
30.09.2016, 17:25
Заработало! Оказывается на реальном сайте только работает. Но только почему то в Эксплоуэре не запоминаются верхние пункты меню ??? Нижние все ок . А в остальных браузерах все нормально

Добавлено через 16 часов 35 минут
Если удалить, часть вложенных элементов меню, то все работает. Выяснилось, что есть какое то ограничение до 4кб. И видимо кук очень большой и эксплоуер его не ест.

Как выйти из подобной ситуации???

Может кто то помочь? Почему никто не отвечает?

Написали бы, хоть что я чайник!!! )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.09.2016, 17:25
Помогаю со студенческими работами здесь

jQuery удаление cookies
Используя jquery.cookie.js столкнулся с проблемой удаление куки. Вроде бы все просто, но кука не удается, а дублируется. На странице есть...

Посоветуйте как можно разобраться в работе с cookies / jQuery
Здравствуйте. Недавно столкнулся с такой задачей как работа с кукисами. Суть задачи следующая: у меня есть страница, при скролле которой из...

Хочу сделать меню с запоминанием на Cookies
Здравствуйте. Хочу сделать меню с запоминанием на куках. Подскажите как сделать запоминание стилей css. (если можно, с примером) ...

Меню на jquery 1.3.2
Нашёл симпотичное меню http://webmaster-piter.ru/master_blog/61-delaem-animirovannoe-menyu-s-pomoshhyu-jquery.html, но появилась...

Меню jquery
Добрый, Задача: - при загрузке старницы меню должно свернуться через 10с. - Если на меню фокус (:hover) - оно не может свернуться, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru