Триггер Jquery Datepicker после смены месяца (после отображения месяца) - PullRequest
8 голосов
/ 22 февраля 2010

Я хочу выделить несколько дней в текущем месяце. Я могу сделать это в первый месяц, но не в новый месяц после нажатия кнопки «следующий месяц» или «предыдущий месяц». Я попытался использовать событие onChangeMonthYear, но оно выполняется до отображения нового (или предыдущего) месяца.

есть идеи?

Ответы [ 3 ]

1 голос
/ 22 февраля 2010

Вы можете сделать это с помощью моего jQuery datepicker , используя пользовательский "renderCallback".

например. В этом примере отключает выходные и добавляет класс для стилизации в те дни. Существует множество других сложных примеров , которые тоже могут помочь ...

$('.date-pick')
    .datePicker(
        {
            renderCallback:function($td, thisDate, month, year)
            {
                if (thisDate.isWeekend()) {
                    $td.addClass('weekend');
                    $td.addClass('disabled');
                }
            }
        }
    );

Кроме того, если вы предпочитаете, после перерисовки календаря происходит событие dpMonthChanged , и вы можете перебирать содержимое календаря и делать выделение ...

1 голос
/ 22 февраля 2010

Возможно, вашим лучшим выбором будет обратный вызов beforeShowDay.

http://jqueryui.com/demos/datepicker/#event-beforeShowDay

Вы можете указать новое имя класса для ячейки, исходя из ваших критериев даты.

0 голосов
/ 28 августа 2013
        hack:
         $('#calendar').datepicker({
                                    onChangeMonthYear: function (year, month, inst) {
                                        setEventsDay()
                                    }
                                 });
function setEventsDay(){
    var days = $(".ui-state-default");
                   console.log(days.length);   //31 from august to Sep 
        setTimeout(function () {
                    var days = $(".ui-state-default");
                   console.log(days.length);     //30 `enter code here`from august to Sep 

                }, 100)
    }
...