@rinatoptimus

Как убрать двойной тап в iOS?

Имеется такой выпадающий список с автокомплитом:
59f95d0f5a4a7952096864.jpeg

$('.js-input-with-tips').on('focus', function (event) {

    var $current_search_field = $(this),
        $target_tips_block = $current_search_field.data('dropdown-block'),
        $hidden_field = $current_search_field.next('input'), // Поле в которое записываем ID выбранного места
        $dropdown_block = $('#' + $target_tips_block);

    $current_search_field.on('keyup', function () {

        $current_search_field.parent('.form__input-wrap').attr('data-aeroport-code', '');

        if ($current_search_field.val().length >= 3) {

            $dropdown_block.one('click', '.dropdown-menu li', function () {

                var $selected_item = $(this),
                    selected_code = $.trim($selected_item.find('.dropdown-menu__code').text()),
                    selected_place = $.trim($selected_item.find('.dropdown-menu__place').text()),
                    
                    selected_name = selected_code.length != 0 ? selected_place : $.trim($(this).text()),
                    selected_id = $(this).data('place-id'); 

                $current_search_field
                    .val(selected_name)
                    .parent('.form__input-wrap')
                    .attr('data-aeroport-code', selected_code);

                $hidden_field.val(selected_id);

                $dropdown_block.off('click', '.dropdown-menu li');
                $dropdown_block.removeClass('open');
            });

            $dropdown_block.addClass('open');

        } else {

            $dropdown_block.off('click', '.dropdown-menu li');
            $dropdown_block.removeClass('open');
            $hidden_field.val('');
        }
    });

    $(document).on('click', function (e) { 

        if (!$dropdown_block.is(e.target) 

            && $dropdown_block.has(e.target).length === 0) { 

            $dropdown_block.removeClass('open'); 

            $(document).off('click', '.dropdown-menu li');
        }
    });

});

Все работает, но на iOS приходится тапать по выбранному элементу 2 раза. Пробовал убирать ховер, изменял событие (......on("click touchend", function(e)......). Дать ссылку на живой пример нет возможности.
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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