2013-04-09 2 views
0

Мне нравится изменять кликабельное состояние даты в datepicker. Поэтому я использую beforeShowDay:jquery datepicker: beforeShowDay

$('#datepicker').datepicker({ 
    inline: true, 
    beforeShowDay: function(date){ 
     var dateTime = parseInt(date.getTime()/1000); 
     if (isWeekend(date)){ 
      return [false,'']; 
     } 
     var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 
     var specialDates = getSpecialSet(y,m); 
     for (i = 0; i < specialDates.length; i++) { 
      if($.inArray((m+1) + '-' + d + '-' + y,specialDates) != -1 || new Date() > date) { 
       console.log('HL: '+(m+1) + '-' + d + '-' + y); 
       return [true,'highlight1','Almost sold out']; 
      } 
     } 
     return [true,'normal']; // ordinary day 
    }, 
    onSelect: function(dateText, inst) { 
     var d = new Date(dateText); 
     cal_gotoDate(d); 
    } 
}); 

загружает мой SpecialDates с помощью функции getSpecialSet(y,m). Эта функция будет запущена для каждой даты в текущем месяце. Потому что мой specialDates набор очень большой: Есть specialDates в течение следующих 20 лет. Мне нравится загружать специальный набор ajax только для текущего месяца.

Но мне нужна функция, которая будет вызвана после того, как месяц будет изменен для предварительной загрузки моих специальных дат через ajax.

Но я не нашел полезной функции в api.

+1

Поскольку вы планируете использовать ajax, это может быть невозможно, потому что к моменту завершения запроса ajax 'beforeShowDay' был бы вызван в течение этого месяца –

ответ

0

Загрузите данные за все месяцы заранее, используя Ajax, но код, чтобы связать datepicker с #DataePicker в функции обратного вызова вызова Ajax.

+0

рассмотреть возможность добавления образцов кода – Gordon

Смежные вопросы