Грубо говоря, для начала можно сделать такое разделение:
- когда родительский пункт не является ссылкой
- когда родительский пункт является ссылкой
У простых разработчиков сайтов нет возможности тестировать работу своих реализаций многоуровневого меню на сотнях устройств. И если встанет задача реализации подобного, то наверное, есть смысл положиться на какую-нибудь библиотеку, которая актуальна и протестирована волонтерами на куче устройств.
В поисках подобных решений, я натолкнулся на пару вариантов библиотек (обе используют Jquery), и чтобы не забыть ссылки выкладываю здесь.
https://www.smartmenus.org/
Вторая кажется менее красивой
http://adnantopal.github.io/slimmenu/
А вот пример, вообще не рабочий показался, на эмуляторе в Chrome при клике по родителю сразу перезагружает страницу
http://responsivemultimenu.com/lib/resp ... ulti-menu/
Хочется добавить по поводу всей этой возни с поддержкой выпадающих многоуровневых меню, что похоже, это тема настолько запущена, что Twitter (Bootstrap 3) отказался вообще от реализации выпадающего меню глубже 1-го уровня вложенности!