JQuery DatePicker - переопределить параметры beforeShow - PullRequest
1 голос
/ 14 июня 2011

Я создал эту тему здесь , но не знал, как на нее ответить, и до сих пор получаю ответ на мой НОВЫЙ вопрос ... поэтому я только создал эту тему.

Хорошо, у меня есть свой DatePicker, добавляющий класс выше / ниже на beforeShow, но теперь мне нужно, чтобы он также изменил один из своих OPTIONS на beforeShow (так, чтобы он анимировался как slideUp или slideDown в зависимости от того, открывается ли он выше или ниже). ).

inst.settings.showAnim = 'slideUp'; устанавливает параметры на вкладке DOM в firebug под DP_jQuery_1308014346347.datepicker._curInst.settings.showAnim, но тогда не будет отображаться средство выбора даты.

На самом деле, я только что заметил, что установка showAnim: 'slideUp' не работает даже сам по себе, означает ли это, что средство выбора даты не примет его o_O? Кажется немного странным ...

Может кто-нибудь помочь, пожалуйста:)?

Ответы [ 2 ]

2 голосов
/ 14 июня 2011

Где именно вы пытаетесь установить параметр анимации?

Если вы инициализируете средство выбора даты с параметром анимации, который вы пишете:

$("#myDatePicker").datepicker({ 
    showAnim: 'slideUp' 
});

Если средство выбора даты уже инициализировано, вам нужно использовать второй метод:

$("#myDatePicker").datepicker("option", "showAnim", "slideUp");
0 голосов
/ 16 апреля 2012

Решение:

Не изменяйте настройки в экземпляре, измените его, не вызывая плагин снова.

 beforeShow: function(input, inst) {
if (inst.dpDiv.position().top > $(input).position().top) {
        $(inst.dpDiv).removeClass('ui-datepicker-above').addClass('ui-datepicker-below');
        $(input).removeClass('above').addClass('below');
        $('#order-main .datepicker').datepicker('option','showAnim','slideDown');
       } else {
        $(input).removeClass('below').addClass('above');
        $(inst.dpDiv).removeClass('ui-datepicker-below').addClass('ui-datepicker-above');
        $('#order-main .datepicker').datepicker('option','showAnim','fadeIn');
      }
...