sinneren
@sinneren

Как сделать прокликивание у выпадающего меню на планшетах, в частности iPad?

Всем привет, сразу к сути: есть меню, 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(); 
      }

  })
  • Вопрос задан
  • 248 просмотров
Пригласить эксперта
Ответы на вопрос 1
streetflush
@streetflush
Сделать клик на элемент его фиксированным открытием и все, не будет проблем.
И не надо ничего превентить и стопать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы