Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Текуший пункт меню и разные родители (https://javascript.ru/forum/dom-window/52784-tekushijj-punkt-menyu-i-raznye-roditeli.html)

рони 07.01.2015 22:02

Цитата:

Сообщение от Kiano
Если кто подскажет код под задачу, которая в первом сообщение,

чем код в 6 посте неустраивает???

Kiano 07.01.2015 22:07

Цитата:

Сообщение от рони (Сообщение 350182)
а что там прописано у вас???

<div id="headmenu">
<ul><li><a href="http://localhost/site/products/">Продукция</a>
<ul>
<li><a href="http://localhost/site/products/kns.php">КНС</a></li>
<li><a href="http://localhost/site/nakopit/">Накопительные емкости</a></li>
</ul>
</li></ul>
</div>

<script>
  $(function() { // когда страница загружена
        $('#headmenu a').each(function(i, el) {
        $("+ul a", el).each(function(indx, element) {
                // проходим по нужным нам ссылками
                var location = "http://localhost/site/nakopit/" // переменная с адресом страницы window.location.href
                var link = element.href // переменная с url ссылки
                var result = location.match(link); // результат возвращает объект если совпадение найдено и null при обратном
                if (result != null) { // если НЕ равно null
                    $(element).addClass('active'); // добавляем класс
                    $(el).addClass('active'); // добавляем класс
                }
            });
 
        });
    });
  </script>


Может кстати из-за url http://localhost/site/products/kns.php не подставляется класс на странице КНС?
Если находишься на странице Накопительные емкости, то класс добавляется, как на ссылке Продукция и Накопительные емкости.

p/s/ ссылки реальные, название категорий тоже, делается на локальном хосте.единственное название сайта не палю.

рони 07.01.2015 22:12

Kiano, ненадо прописывать ссылку!!! она была только для примера
6 строка
var location = window.location.href;

danik.js 07.01.2015 22:28

Цитата:

Сообщение от рони
var result = location.match(link);

Так разве match не регулярку аргументом принимает? То есть беда если в урле окажутся спец-символы регулярок?

Kiano 07.01.2015 22:41

Цитата:

Сообщение от рони (Сообщение 350192)
Kiano, ненадо прописывать ссылку!!! она была только для примера
6 строка
var location = window.location.href;

Вот так работает.Если код меню, как выше.
Подскажите пожалуйста, как всё это заставить работать, если в меню есть ещё классы у ul и дивов.

Я так понимаю, в JS должны быть прописаны дивы в нужном порядке.

<div id="headmenu">
 <ul id="topnav">
 <li><a href="http://localhost/site/products/">Продукция</a>
 <div id="subm-gl">
 <div class="submenu" style="border-left:none;">
 <ul>
 <li><a href="http://localhost/site/products/kns.php">КНС</a></li>
 <li><a href="http://localhost/site/nakopit/">Накопительные емкости</a></li>
 </ul>
 </div>
 </div>
 </li>
 </ul>
 </div>

рони 07.01.2015 22:47

Kiano, 4 строка
$("+div ul a", el)

Kiano 07.01.2015 22:57

рони, ВО!Работает!Ура!!!
Скиньте мне в лс номер вашего я.кошелька, благодарность вышлю.

ruslan_mart 08.01.2015 07:59

Kiano, посмотри код моего меню, может поможет чем-нибудь. :)


Часовой пояс GMT +3, время: 04:58.