Меню. Навигация.

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 7 декабря 2020 в 18:04
Всем привет. На главной сайта только виджеты. Основное меню — три пункта. Один из них — Главная. Виджены компонента content из папки list. Кликая по ссылке title в виджете я перехожу на страницу контента. Далее кликая по пункту меню Главная, я попадаю на главную страницу, как и задумано. Но в мобильной версии оказываясь на странице контента я не могу перейти на главную по ссылке из основного меню, так как вкладка Главная активна и не кликабельна. Если не понятно, глянуть можно тут.Как это поправляется?
#2 7 декабря 2020 в 20:30
Привет!
Добавь пункту селектор. К примеру, — li_home
Где-то внизу макета:
  1.  
  2. <script>
  3. <?php if (!$core->uri){ ?>
  4. $(".li_home").addClass("active");
  5. <?php } else { ?>
  6. $(function(){
  7. if ($("li").is(".li_home")){
  8. $("nav select option[value='/']").removeAttr("selected");
  9. }
  10. });
  11. <?php } ?>
  12. </script>
  13.  
Вангую: скоро последует ещё один вопрос))
Ответ найдешь здесь
#3 7 декабря 2020 в 21:17
laughСпасибо. Но так не будет работать). В мобильном меню нет классов. Но направление понятно. Попробую что то замутить). Думал в настройках системы что то есть).
#4 7 декабря 2020 в 22:21

Но так не будет работать). В мобильном меню нет классов.

Lora
Так судя по коду, там штатное меню у тебя. Если таки да, то назначь пункту селектор в админке и размести код перед </body>. Там посмотрим будет работать или нет…
#5 7 декабря 2020 в 22:48
Стал разбираться и увидел, что у меня пункт Главная всегда selected. Причём на хосте. На локалке всё нормально. Вот код с консоли.
  1. <select class="mobile_menu_select"><option value="/"></option>
  2. <option value="/" selected="selected">
  3. Главная
  4. </option><option value="/pages/about.html">
  5. Обо мне
  6. </option><option value="/pages/otzyvy.html">
  7. Отзывы
  8. </option>
  9. </select>
Файлы одинаковые. Хз. Буду рыть.Где то что то сам накосячил и забыл наверное)))
#6 8 декабря 2020 в 00:02
Человек спрашивает:
— Как исправить проблему с меню?
Человеку говорят:
— Вот так.
В ответ Человек говорит:
— Так не будет работать
У Человека уточняют:
— А вы пробовали сделать так, как вам посоветовали?
Человек отвечает:
— Я стал тут разбираться. Оказалось, что листья у деревьев бывают зелёного цвета.
-------------------------
Вопрос: есть ли смысл продолжать беседу с Человеком?
#7 8 декабря 2020 в 08:41
Да пробовал я… Только ради вас))). Ваш код для десктопного меню. И класс задаётся тоже для него. У мобильного другая структура
  1. <nav>
  2. <div class="my-logo">
  3. <a title="Главная" href="/"></a></div>
  4. <div class="widget_ajax_wrap" id="widget_pos_top"><ul class="menu">
  5. <li class="li_home">
  6. <a title="Главная" class="item" href="http://danilowa" target="_self">
  7. <span class="wrap">Главная</span>
  8. </a>
  9.  
  10. </li>
  11. <li>
  12. <a title="Обо мне" class="item" href="/pages/about.html" target="_self">
  13. <span class="wrap">Обо мне </span>
  14. </a>
  15. </li>
  16. <li>
  17. <a title="Отзывы" class="item" href="/pages/otzyvy.html" target="_self">
  18. <span class="wrap">Отзывы </span>
  19. </a>
  20. </li>
  21. </ul>
  22. </div>
  23. <select class="mobile_menu_select"><option value="/"></option>
  24. <option value="http://danilowa"> Главная</option>
  25. <option value="/pages/about.html"> Обо мне</option>
  26. <option value="/pages/otzyvy.html"> Отзывы</option>
  27. </select>
  28. </nav>
#8 8 декабря 2020 в 13:15

Да пробовал я...

Lora
Не верю! zlo
У тебя 2 разных виджета с меню там?
Ещё так пробуй:
  1.  
  2. <?php if ($core->uri){ ?>
  3. <script>
  4. $(function(){
  5. $("nav select option[value='/']").removeAttr("selected");
  6. });
  7. </script>
  8. <?php } ?>
  9.  
Или дай админа и FTP на сайт.
#9 8 декабря 2020 в 14:00
Ход мыслей верен). Но и так работать не будет. Уже пробовал. Суть в том, что мобильное меню тоже генерируется js. Я разобрался почему Главная всегда selected. Если открываешь страницу типа контента для которого нет пункта меню, то для системы ты на главной. А в файле core.js прописан код, на этот случай.
  1. if(window.location.pathname.indexOf(el.attr('href')) === 0){
  2. attr.selected = true;
  3. }
Меняем true на false и всё. laugh
Рано порадовался). Так любой первый пункт не селектед. Нужно дописывать код(. А не хотелось бы.
Решение очевидно), В меню, для Главной прописать абсолютный путь.Тогда селектед будет самый первый, пустой опшен.
#10 8 декабря 2020 в 14:39

Не верю!

Олег Васильевич я
Не злись, Васильич. наслаждайся творческим процессом. laugh
#11 8 декабря 2020 в 14:46
Ну боритесь дальше. Помощь вам предлагали...

Иллюстрация
#12 8 декабря 2020 в 16:06

Ну боритесь дальше. Помощь вам предлагали...

Олег Васильевич я
А я и не отказывался). Но нашёл способ без вмешательства в код. Ваш код верен. Никто не спорит. Но один js перебивает другой… Как то не по феншую).
#13 8 декабря 2020 в 17:24

Но нашёл способ без вмешательства в код.

Lora
Это как? Не поделитесь способом?

К ворожке обратились?

Но один js перебивает другой… Как то не по феншую).

Lora
Это да. Но альтернативный вариант вроде б требует повесить себе на шею ещё один файл. Не?
#14 8 декабря 2020 в 20:40

В меню, для Главной прописать абсолютный путь.Тогда селектед будет самый первый, пустой опшен

Lora
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.