Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Сохранение позиции в аккордеон меню / 12 сообщений из 12, страница 1 из 1
06.02.2017, 13:24
    #39399219
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
Как можно сохранять выбранную позицию меню при перегрузке страницы?

Меню:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
   <div class="mini-menu">
        <ul>
            <li class="sub">
                <a href="#">Пункт Меню - 1</a>
                <ul>
                   <li><a href="#">Ссылка - 1</a></li>
                   <li><a href="#">Ссылка - 2</a></li>
                   <li><a href="#">Ссылка - 3</a></li>
                </ul>
            </li>
            <li class="sub">
                <a href="#">Пункт Меню - 2</a>
                <ul>
                   <li><a href="#">Ссылка - 1</a></li>
                   <li><a href="#">Ссылка - 2</a></li>
                   <li><a href="#">Ссылка - 3</a></li>
                </ul>
            </li>
        </ul>
    </div>



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<script type="text/javascript">
	$(document).ready(function () {
		$('.sub > a').click(function(){
			$('.sub ul').slideUp();
			if ($(this).next().is(":visible")){
				$(this).next().slideUp();
			} else {
				$(this).next().slideToggle();
			}
			return false;
		});
		$('.mini-menu > ul > li > a').click(function(){
			$('.mini-menu > ul > li > a, .sub a').removeClass('active');
			$(this).addClass('active');
		}),
		$('.sub ul li a').click(function(){
			$('.sub ul li a').removeClass('active');
			$(this).addClass('active');
		});
	});
</script>
...
Рейтинг: 0 / 0
06.02.2017, 13:36
    #39399233
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
kasper_,

Устанавливать класс active выбранному элементу меню при генерации HTML на сервере. Клиент-то откуда может знать, какое меню должно быть активным? В куках хранить? Выковыривать из URL? Из хидден инпута?

Чтобы что-то восстановить, надо это что-то куда-то сохранить. Сохраняй при выборе элемента меню и восстаналвивай потом.
...
Рейтинг: 0 / 0
06.02.2017, 13:42
    #39399240
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
я смогу сохранить некий код выбранной позиции, но как при перегрузке страницы позицию, у которой сохранён код, сделать активной?
...
Рейтинг: 0 / 0
06.02.2017, 14:33
    #39399288
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
Сделал вот так:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    <ul id="menu">
        <li class="sub"><a href="#">Пункт Меню - 1</a>
          <ul>
            <li><a href="#">Ссылка 1-1</a></li>
            <li><a href="#">Ссылка 1-2</a></li>
          </ul>
        </li>
        <li class="sub"><a href="#">Пункт Меню - 2</a>
          <ul>
            <li><a href="#">Ссылка 2-1</a></li>
            <li><a href="#">Ссылка 2-2</a></li>
          </ul>
        </li>
        <li class="sub"><a href="#">Пункт Меню - 3</a>
          <ul>
            <li><a href="#">Ссылка 3-1</a></li>
            <li><a href="#">Ссылка 3-1</a></li>
          </ul>
        </li>
    </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.
    <script type="text/javascript" src="js/jquery.cookie.js"></script>	
    <script type="text/javascript">
        $(document).ready(function () {
          var checkCookie = $.cookie("sub-nav");
          if (checkCookie != "") {
            $('#menu > li.sub > a:eq('+checkCookie+')').addClass('active').next().show();
          }
          $('#menu > li.sub > a').click(function(){
              var navIndex = $('#menu > li.sub > a').index(this);
              $.cookie("sub-nav", navIndex);
              $('#menu li ul').slideUp();
               if ($(this).next().is(":visible")){
                   $(this).next().slideUp();
               } else {
               $(this).next().slideToggle();
               }
               $('#menu li a').removeClass('active');
               $(this).addClass('active');
          });
            var checkCookie = $.cookie("sub-link");
          if (checkCookie != "") {
            $('#menu > li.sub > ul li a:eq('+checkCookie+')').addClass('active');
          }
            $('.sub ul li a').click(function(){
                var subIndex = $('.sub ul li a').index(this);
              $.cookie("sub-link", subIndex);
           $('.sub ul li a').removeClass('active');
           $(this).addClass('active');
        });
        });
    </script>



А теперь как сбросить меню при использовании любой другой ссылки, не относящейся к этому меню. Ну, чтобы оно при этом свёртывалось??
...
Рейтинг: 0 / 0
06.02.2017, 14:40
    #39399295
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
куки очищать?
...
Рейтинг: 0 / 0
06.02.2017, 14:59
    #39399314
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
kasper_куки очищать?

Очищай куки про восстановлении. Но в целом, рекомендую отказаться от идеи вот такого анально-мануального ковыряния DOM через селекторы и перейти на Angular/React/Mithril/Vue/etc.
...
Рейтинг: 0 / 0
06.02.2017, 15:00
    #39399316
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
и как корректно очистить?
...
Рейтинг: 0 / 0
06.02.2017, 15:02
    #39399319
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
kasper_,

$.cookie("name", null, { path: '/' });
...
Рейтинг: 0 / 0
06.02.2017, 15:07
    #39399325
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
а на php можно?
...
Рейтинг: 0 / 0
06.02.2017, 15:41
    #39399356
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
kasper_а на php можно?

http://stackoverflow.com/questions/686155/remove-a-cookie

Что ещё для тебя погуглить?
...
Рейтинг: 0 / 0
06.02.2017, 15:45
    #39399360
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
kasper_а на php можно?
На ПХП - лучше запоминать в ПХП...
...
Рейтинг: 0 / 0
06.02.2017, 15:57
    #39399380
kasper_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение позиции в аккордеон меню
hVostt,
спасибо!
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Сохранение позиции в аккордеон меню / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]