Проверьте, открыт ли указатель даты - PullRequest
21 голосов
/ 06 мая 2010

У меня есть поле с указателем даты. Я хочу знать, если это открыто. Я пробовал с:

$("#filter_date").datepicker( "widget" ).is(":visible")

но всегда возвращает true.

Как я могу проверить, открыт ли он?

Ответы [ 5 ]

33 голосов
/ 30 марта 2011

Это может быть возможной ошибкой в ​​прошлом. Теперь это решение

$("#filter_date").datepicker( "widget" ).is(":visible")

отлично работает

9 голосов
/ 13 ноября 2012

Просто установите:

#ui-datepicker-div { display: none; }

в вашем файле CSS и вашем коде:

$("#filter_date").datepicker( "widget" ).is(":visible")

будет работать правильно!

4 голосов
/ 06 мая 2010

Вдобавок ко всему, я мог бы подумать об использовании событий beforeShow и onClose , определенных для элемента управления DatePicker, для переключения где-либо класса (или флага) и проверки наличие которого определяет, открыт ли элемент управления datepicker.

1 голос
/ 21 декабря 2017
   var isCalendarVisible;     
   $(".datepicker).datepicker().on("show", function () {
          isCalendarVisible = true;
    }).on("hide", function () {
          isCalendarVisible = false;
    });

Я использовал этот подход для переключения выбора даты при нажатии кнопки. isCalendarVisible получать обновленную информацию о 'show' & 'hide' DatePicker соответственно. Я проверяю значение isCalendarVisible, чтобы открыть или закрыть его вручную.

    function toggleCalendar() {
        if (isCalendarVisible) {
            $(".datepicker .add-on").datepicker("hide");
        } else {
            $(".datepicker .add-on").datepicker("show");
        }
    }
1 голос
/ 01 декабря 2014

Доступ к атрибуту стиля средства выбора даты и сравнение его со стилем, когда средство выбора даты скрыто (отображение: отсутствует):

var datePickerStyle = $('.datepicker').attr('style');
var noneStyle = 'display: none;';
if(datePickerStyle.indexOf(noneStyle) != -1){
     console.log('shown');
} else {
     console.log('not shown');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...