Странное поведение касания / нажатия с помощью jquery ui datepicker на iOS

0

У меня есть угловое приложение со следующей директивой:

'use strict';

/**
 * Simple date picker
 */
angular.module('twicketsApp').directive('twicketsDatePickerSimple', [function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, element, attrs, ngModel) {

            function initDatepicker() {
                element.click(function() {console.log('datepicker clicked');});
                element.datepicker({
                    dateFormat: 'yy-mm-dd',
                    changeMonth: false,
                    changeYear: false,
                    minDate: scope.futureOnly ? 0 : null,
                    maxDate: scope.futureOnly ? 365 : null,
                    onSelect: function (date) {
                        ngModel.$setViewValue(date); // update date value back to the model
                    },
                    beforeShow: function(input, inst) {
                        inst.dpDiv.addClass('simple-date-panel');
                    }
                });
            }

            attrs.$observe('futureOnly', function (value) {
                scope.futureOnly = value === 'true' ? true : false; // attrs come in as a string
                initDatepicker();
            });

        }
    };
}]);

Как вы можете видеть, на этом элементе есть как обработчик кликов, так и датпикер (обработчик кликов предназначен только для отладки).

Когда я слегка касаюсь элемента в сафари в любом iOS, срабатывает обработчик кликов - но датапикер не открывается. Но если я нажимаю немного сложнее, функция datepicker открывается (это не долгое нажатие, так как длительное нажатие не запускает обработчик кликов или не открывает датпикер).

Абсолютно не знаю, почему это происходит. Есть идеи?

Мой проект использует fastclick, который может иметь аффект.

  • 0
    Ваш телефон сломан? Можете ли вы повторить это на другом устройстве или симуляторе?
  • 0
    На тренажере IOS, нажав не работает на всех, но длинный щелчок (так выбран какой - то текст рядом с полем ввода) с последующим щелчком делает. Weird. Это также имеет место с iphone 4 (оригинальный тест был iphone 5c)
Показать ещё 1 комментарий
Теги:
datepicker

2 ответа

1
Лучший ответ

Исправлено следующим грязным взломом, подумал, что я могу сделать это так, но надеялся, что будет лучшее решение.

           ...

 function initDatepicker() {
    element.click(function() {element.datepicker( "show" );});
    element.datepicker({

           ...
0

Для мобильных и сенсорных устройств или экранов JQuery UI Datepicker инициализирует компонент datepicker, но никогда не запускает метод "show". Затем вы можете использовать что-то вроде этого:

$(".datepicker").datepicker();

$(".datepicker").on("click", function () {
    $(this).datepicker("show");
});
  • 0
    Не работает Не могу заставить его зарегистрировать клик на всех

Ещё вопросы

Сообщество Overcoder
Наверх
Меню