Alexanevsky
@Alexanevsky
Любительская web-разработка

Почему в Safari на iPhone 4S iOS 7 не работает то, что работает всюду?

Здравствуйте.

Что сделано:
На сайте используется адаптивный дизайн. На экранах с маленьким разрешением экрана (телефонах) меню появляется при клике на соответствующую кнопку - выезжает с боку div, который занимает примерно 50% ширины. При клике вне этого блока меню должно закрываться - пропадать.

Реализация:
Используется следующий скрипт:
$('.mobile-navigation-link').click(function(e) {
    var $mobileNav = $('.mobile-navigation');
 
    if ($mobileNav.css('visibility') != 'visible') {
        $mobileNav.addClass('shownav');
 
        var firstClickMobileNav = true;
        $(document).bind('click.myEventNav', function(e) {
            if (!firstClickMobileNav && $(e.target).closest('.mobile-navigation').length == 0) {
                $mobileNav.removeClass('shownav');
                $(document).unbind('click.myEventNav');
            }
            firstClickMobileNav = false;
        });
    }
 
    e.preventDefault();
});


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

Тестировалось:
Десктопные (с минимальным размером окна): Safari, Chrome, Firefox, Opera и Tor - полёт нормальный.
Планшеты: iPad 2, iPad mini (Safari) - всё как надо.
Телефоны: SGS III (Chrome) - не подвёл, iPhone 4S iOS 7 - сломал систему, не работает...

Если пожелаете ознакомиться с конкретными условиями - ссылка на сайт.

Буду благодарен за ответ!

С уважением,
Александр.
  • Вопрос задан
  • 3202 просмотра
Пригласить эксперта
Ответы на вопрос 2
AMar4enko
@AMar4enko
Ставите OS X, подключаете iPhone, запускаете Safari, включаете инструменты разработчика, открываете на телефоне нужный сайт, в инструментах разработчика выбираете для отладки открытую на телефоне страницу, отлаживаете.
Ответ написан
@ascesa
Вдруг кому-то пригодится. Столкнулся с такой же проблемой.
Решил ее так. Заметил, что при клике вне поля по сторонней ссылке (именно по ссылке), клик все-таки срабатывает.
Поэтому скриптом создаю появление фоновой пустой ссылки на весь экран. И при клике по ней вне поля скрипт срабатывает.

Подойдет не во всех случаях, но как вариант, вполне приемлемо.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы