Всем привет, сразу к сути: есть меню, 3 уровневое выпадающее.Сделано как положено на ховерах. Но, в планшетах мы видим, что корневой элемент при таче логично переходит по ссылке,вместо открытия. Ок, скажете можно повесить return false? Ну нет, с планшетами сложно. Нужно preventDefault, да не просто так. Но вот проблема: в андроидах всё ок, естественно ,ведь это человеческая, нормальная ось, но не айос, с которой костыль на костыле нужно писать. Там это отрабатывает так: нажимаем на меню, оно откроется, схлопнется, снова откроется, нажимаем открыть 3 уровень, откроется, нажимаем на него и тогда вместо перехода по ссылке у нас идёт клик по тому элементу, что был ПОД ним. Вот такое странное поведение.
Вот структура меню, если вдруг нужно.
<div class="Navigation">
<div class="Navigation_Item">
<a href="">Link</a>
</div>
<div class="Navigation_Item With_Sub">
<span>
<a href="">Link</a>
</span>
<div class="Navigation_Sub">
<div class="Navigation_Sub_Item With_Sub">
<a href="">Link</a>
<div class="Navigation_Sub">
<div class="Navigation_Sub_Item">
<a href="">Link</a>
</div>
</div>
</div>
</div>
</div>
</div>
$('.Root_Link').on('click touchstart', function(e) {
if($(this).hasClass('blocked')) {
$(this).removeClass('blocked');
} else {
$(this).addClass('blocked');
e.preventDefault();
e.stopPropagation();
//e.stopImmediatePropagation();
}
})