Почему на iphone не работает hover в меню?
а как вы представляете себе наведение на элемент в тач устройствах?
это когда палец на миллиметр от экрана над элементом завис?))
В тач устройствах есть touchstart, touchend, touchcancel, touchleave, touchmove.docs
В интернете нашлось какое-то неполное решение.
Во-первых, в стили надо добавить класс, который будет делать то же, что и :hover. Во-вторых, по-клику (а лучше на ontouchend), снимать этот класс со всех nav li и добавлять туда, где кликнули.