Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.08.2018, 14:32
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Присвоить пункту меню класс active???
Помогите!!!! Нужно присвоить пункту меню класс active если он активен! Вот скрипт
$(function() {
    $('.menu-item').on('click', 'a', function(event) {
         $(this).addClass("active").siblings().removeClass("active");  
         event.preventDefault();
    });
});



Добавила этот вариант скрипта, но он тоже не работает
<script>
		$(function () { 
    $('.menu-item a').each(function () {
        var location = window.location.href;
        var link = this.href; 
        if(location == link) {
            $(this).addClass('active');
        }
    });
});
</script>

Последний раз редактировалось Julia1991, 09.08.2018 в 17:22.
Ответить с цитированием
  #2 (permalink)  
Старый 07.08.2018, 19:39
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Julia1991,
у него класс open появляется, чем не устраивает?
Ответить с цитированием
  #3 (permalink)  
Старый 07.08.2018, 20:36
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

У активного пункта меню open не появляется
Ответить с цитированием
  #4 (permalink)  
Старый 07.08.2018, 20:45
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

$(function() {
    $("a[href='" + window.location.href.replace(/\/(ru|ua)/g,"") + "']").addClass("active");
});
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2018, 09:08
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Большое спасибо, помогло

Последний раз редактировалось Julia1991, 08.08.2018 в 09:14.
Ответить с цитированием
  #6 (permalink)  
Старый 08.08.2018, 11:04
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Не срабатывает для страницы блога

Последний раз редактировалось Julia1991, 09.08.2018 в 17:22.
Ответить с цитированием
  #7 (permalink)  
Старый 08.08.2018, 11:32
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

Стремно такое публиковать, но...
const patterns = [];
let url = location.href.replace(/\/(ru|ua)/g, '');

patterns.push(url);
if (url.substr(-1) === '/') {
    url = url.substr(0, url.length - 1);
    patterns.push(url);
};
url = url.split(location.host, 2).pop();
patterns.push(url);
if (url.substr(0, 1) === '/') {
    url = url.substr(1);
    patterns.push(url);
};
if (url.indexOf('#')) {
    patterns.push(
        url.split('#').shift(),
        '/' + url.split('#').shift()
    );
};
if (url.indexOf('?')) {
    patterns.push(
        url.split('?').shift(),
        '/' + url.split('?').shift()
    );
};

patterns.forEach(function(href) {
    const list = document.querySelectorAll('.menu-item a[href="' + href + '"]');
    if (list)
        list.forEach(function(node) {
            node.classList.add('active');
        });
});
Ответить с цитированием
  #8 (permalink)  
Старый 08.08.2018, 11:53
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Нет, этот не работает
Ответить с цитированием
  #9 (permalink)  
Старый 08.08.2018, 11:56
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

Сообщение от Julia1991
Нет, этот не работает
оберните мой код в это:
$(function() {
    //тут код
});
Ответить с цитированием
  #10 (permalink)  
Старый 08.08.2018, 12:37
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Теперь работает, спасибо! А как сделать чтоб при клике на активный пункт меню не срабатывал переход? Вот мой код, но он не работает
document.getElementsByClassName('active').onclick = function(){
   return false; 
};
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена стилей класса Павел Турченко Элементы интерфейса 9 30.10.2015 15:24
Бесконечноуровневое меню на CSS ruslan_mart Ваши сайты и скрипты 5 12.01.2015 20:59
Выделение активных пунктов многоуровневого меню на jQuery Letto Элементы интерфейса 2 04.12.2013 15:30
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36
Как в общем меню для всех страниц поменять класс определенного пункта в зависимости о phenom Элементы интерфейса 2 08.04.2011 11:09