Функция клика по javascript на iPhone

У меня есть следующий скрипт

$(document).ready(function(){
    var link = $('.menu > ul > li');
    $(link).click (function(e) {
        $(this).addClass('active').siblings().removeClass('active');
        var a = $(e.target).attr('href');
        if(a == '#'){
            e.preventDefault();
            };
        });
});

Который показывает подуровневое меню при нажатии на верхний уровень. Пример структуры html:

 <li><a href="#">mortgages</a>
                <!-- SUBMENU START -->
                <ul>
                    <li><a href="first-time-buyers.php">first time buyers</a></li>
                    <li><a href="moving-home.php">moving home</a></li>
                    <li><a href="remortgaging.php">remortgaging</a></li>
                    <li><a href="buy-to-let.php">buy to let</a></li>
                    <li><a href="self-build.php">self build</a></li>
                    <li><a href="commercial.php">commercial</a></li>
                    <li><a href="mortgage-search.php">mortgage search</a></li>
                    <li><a href="http://www.quote-conveyancing.co.uk/GetQuote.aspx?int=47495349">conveyancing quote</a></li>
                </ul>
                <!-- SUBMENU END -->
            </li>

Это прекрасно работает на настольных компьютерах, но на iPhone / iPad и т. Д. Не работает. Что после поиска в Интернете, я понимаю, что это из-за этих устройств, рассматривающих первое нажатие как зависание.

Дело в том, что я попробовал несколько общих предложений без удачи. Я пробовал;

Добавление курсора: указатель на CSS и экспериментирование с сенсорным запуском после щелчка.

Есть ли что-то еще, что кто-то может предложить попробовать?

РЕДАКТИРОВАТЬ: думаю, что я все ближе. Я немного изменил скрипт (отредактировано выше), и теперь, если вы удерживаете пункт меню, пока на iPhone не появится сообщение, спрашивающее, как вы хотите открыть страницу, под подменю появится. Затем, когда оно появится, нажатие на верхнее меню работает без проблем.

У кого-нибудь есть идеи, почему первоначальный щелчок не работает правильно?

1 ответ

Все мобильные телефоны не имеют события клика. Вы должны использовать JQuery Mobile или что-то вроде этого. На мобильных телефонах используется сенсорный вместо щелчка. Есть много библиотек, которые находят мобильнее, а не трансформируют нажатием кнопки. Вы можете сделать это самостоятельно. Просто найдите, если существует сенсорное событие и чем использовать сенсорный

Удачи

Другие вопросы по тегам