Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2020, 00:29
Интересующийся
Отправить личное сообщение для Nice Посмотреть профиль Найти все сообщения от Nice
 
Регистрация: 13.10.2019
Сообщений: 15

Как сделать родительский пункт меню кликабельным после разворачивания?
Здравствуйте, пытаюсь написать обработчик для многоуровнего меню. На сайте есть меню, в котором выводятся категории и подкатегории товаров.

Сейчас категории и подкатегории в меню кликабельны и ведут в каталог товаров. Мне же надо, чтобы родительская категория изначально была с неактивной ссылкой href="#" и разворачивала подкатегории. А уже если они развёрнуты, то тогда можно активировать ссылку на категории и тоже перейти по ней в каталог. Подскажите как это реализовать?

На данный момент дочерние пункты разворачиваются при наведении мыши mouseover и .addClass('active'), а событие click не могу повесить, т.к. он просто провалится по ссылке в каталог, а не развернёт подпункты.

Например:

Машинное масло
-для автомобилей
-для мотоциклов
-для водной техники

Направьте меня, пожалуйста, как это делается, а то я зависла что-то..
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2020, 15:21
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от Nice
а событие click не могу повесить, т.к. он просто провалится по ссылке в каталог, а не развернёт подпункты.
Это плохое, неправильное меню.
ИМХО.
Что делать тем, у кого нет мыши? Например, планшет, или кто то пользуется клавиатурой?
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2020, 15:40
Интересующийся
Отправить личное сообщение для Nice Посмотреть профиль Найти все сообщения от Nice
 
Регистрация: 13.10.2019
Сообщений: 15

Сообщение от voraa Посмотреть сообщение
Это плохое, неправильное меню.
ИМХО.
Что делать тем, у кого нет мыши? Например, планшет, или кто то пользуется клавиатурой?
вот как раз поэтому мне и надо переделать его. Но как сделать родительский пункт меню с неактивной ссылкой при первом щелчке? А потом её активировать. В этом же и суть вопроса собственно)
Ответить с цитированием
  #4 (permalink)  
Старый 28.07.2020, 22:19
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Я же говорю, что это неправильное меню.
Меню - это некоторый стандартный элемент, который должен вести себя стандартно. Юзвери уже побывали на куче сайтов и знают, как должно себя вести меню. Обычное действие - при клике на пункт меню, либо выполняется команда, предусмотренная этим пунктом, либо открывается меню следующего уровня. В последнем случае, повторный клик на этом пункте, должен закрыть это подменю. Юзвери привыкли, что это работает так. Так сделано почти везде. Как он поймет, что повторный клик сделает что то другое? И как тогда закрывать подменю?
Ответить с цитированием
  #5 (permalink)  
Старый 28.07.2020, 22:44
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Полностью согласен с voraa.
Лучше либо добавить новую ссылку в раскрывающийся список, которая будет вести на нужную страницу, либо сделать так, чтобы по клику на ссылке пользователь переходил на нужную страницу, а по клику на стрелочку справа от ссылки раскрывалось/скрывалось сабменю.
Ответить с цитированием
  #6 (permalink)  
Старый 28.07.2020, 23:15
Интересующийся
Отправить личное сообщение для Nice Посмотреть профиль Найти все сообщения от Nice
 
Регистрация: 13.10.2019
Сообщений: 15

Сообщение от voraa Посмотреть сообщение
Я же говорю, что это неправильное меню.
Меню - это некоторый стандартный элемент, который должен вести себя стандартно. Юзвери уже побывали на куче сайтов и знают, как должно себя вести меню. Обычное действие - при клике на пункт меню, либо выполняется команда, предусмотренная этим пунктом, либо открывается меню следующего уровня. В последнем случае, повторный клик на этом пункте, должен закрыть это подменю. Юзвери привыкли, что это работает так. Так сделано почти везде. Как он поймет, что повторный клик сделает что то другое? И как тогда закрывать подменю?
У заказчика изначально на сайте все менюшки открываются ховером и отсутствует моб.адаптация. У меня стоит задача прописать моб.адаптацию и пофиксить этот момент. Т.е. мне надо чтобы на мобильном подпункты при клике разворачивались. Сейчас же подпункты развернуть с телефона нельзя, т.к. просто срабатывает ссылка. А это интернет-магазин. Там и категории и подкатегории должны быть доступны
Ответить с цитированием
  #7 (permalink)  
Старый 28.07.2020, 23:30
Интересующийся
Отправить личное сообщение для Nice Посмотреть профиль Найти все сообщения от Nice
 
Регистрация: 13.10.2019
Сообщений: 15

Сообщение от Nexus Посмотреть сообщение
Полностью согласен с voraa.
Лучше либо добавить новую ссылку в раскрывающийся список, которая будет вести на нужную страницу, либо сделать так, чтобы по клику на ссылке пользователь переходил на нужную страницу, а по клику на стрелочку справа от ссылки раскрывалось/скрывалось сабменю.
стрелочку я сделала и она работает, но для мобильного было бы удобнее, чтобы можно было кнопку полностью тыкнуть, а не целиться в стрелочки сбоку) можно промахнуться. Т.е. тут стоит вопрос удобства. Заглушку тоже уже прописала через js и меню по щелчку открывается, но вот вернуть обратно кликабельность пункта не получается что-то.

$('.dropdown-menu__section__title a').click(function() { 
	var old_href = $('.dropdown-menu__section__title a').prosp('href'); // Записали оригинальную ссылку в переменную
	$('.dropdown-menu__section__title a').attr('href', '#'); // Заменили ссылку на заглушку

//Тут пробую вешать и счётчик и через условие и через класс active, но не всё равно не срабатывает
	$('.dropdown-menu__section__title a').attr('href', 'old_href'); //Вернули ссылку
	$('.dropdown-menu__section__title a').click; //Вернули кликабельность

});
Ответить с цитированием
  #8 (permalink)  
Старый 29.07.2020, 01:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ссылки должны быть только у активных разделов, кнопкам которые разворачивают список разделов зачем ссылки?
Ответить с цитированием
  #9 (permalink)  
Старый 29.07.2020, 01:31
Интересующийся
Отправить личное сообщение для Nice Посмотреть профиль Найти все сообщения от Nice
 
Регистрация: 13.10.2019
Сообщений: 15

Сообщение от laimas Посмотреть сообщение
Ссылки должны быть только у активных разделов, кнопкам которые разворачивают список разделов зачем ссылки?
потому что это меню с категориями товаров. Категорий дофига и цель была их спрятать в родительские. Потому что не вмещаются полным списком. Зайдите в любой крупный интернет магазин (хотя бы даже алиэкспресс), там подкатегории выпадают из родительских. И все они кликабельны (как родители, так и дети). Странно, что тут на форуме это всех удивляет) в любом случае работаю с тем, что есть. Пока что спрятала в родительские и сделала их некликабельными href="#". Но лично я сама много раз встречала меню, особенно на мобильных, когда первый раз кликаешь - разворачивается шторка, а когда она развёрнута, то родитель тоже становится кликабелен. Неужели никто такого не встречал?
Ответить с цитированием
  #10 (permalink)  
Старый 29.07.2020, 06:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nice
много раз встречала меню, особенно на мобильных, когда первый раз кликаешь ...
Я нет, и надеюсь не встречу. Тогда ссылка и кнопка, а не такие мытарства.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как динимически определять ВЫСОТУ блока при изменении ширины окна браузера? ozoro jQuery 18 27.10.2019 02:38
Как повесить onclick="return false" на родительский пункт меню? Julia1991 Общие вопросы Javascript 2 24.07.2018 12:12
вопрос по меню bgraf Элементы интерфейса 9 08.08.2017 03:52
Как сделать так что бы после перезагрузки не менялся выбраный таб? kursof Элементы интерфейса 5 29.12.2014 00:12
Как выделить активный пункт меню в моём случаи? может кто помочь? nStyle jQuery 10 11.03.2012 01:51