powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Сохранение позиции в аккордеон меню
12 сообщений из 12, страница 1 из 1
Сохранение позиции в аккордеон меню
    #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
Сохранение позиции в аккордеон меню
    #39399233
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_,

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

Чтобы что-то восстановить, надо это что-то куда-то сохранить. Сохраняй при выборе элемента меню и восстаналвивай потом.
...
Рейтинг: 0 / 0
Сохранение позиции в аккордеон меню
    #39399240
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я смогу сохранить некий код выбранной позиции, но как при перегрузке страницы позицию, у которой сохранён код, сделать активной?
...
Рейтинг: 0 / 0
Сохранение позиции в аккордеон меню
    #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
Сохранение позиции в аккордеон меню
    #39399295
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
куки очищать?
...
Рейтинг: 0 / 0
Сохранение позиции в аккордеон меню
    #39399314
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_куки очищать?

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

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

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

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


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