【问题标题】:jQuery datepicker onChangeMonthYear doesn't fire on current monthjQuery datepicker onChangeMonthYear 在当前月份不会触发
【发布时间】:2010-08-13 08:46:29
【问题描述】:

我正在使用内联日期选择器,突出显示有事件的日期。每次月份更改时,它都必须从服务器加载新事件。问题是, onChangeMonthYear 仅在与当前月份不同的月份触发。例如,如果是 8 月,它会在之前的所有月份(7 月、6 月、5 月……)和接下来的所有月份(9 月、10 月……)触发,但当我改回 8 月时不会触发。这是我的代码:

function highlightDates(date) {
    for ( var i = 0; i < agenda.length; i++) {
        var start = agenda[i].start.toShortDate();
        var end = agenda[i].end.toShortDate();

        if (start >= date && end <= date) {
            return [ true, 'dateHasEvent' ];
        }
    }

    return [ true, '' ];
}

Date.prototype.toShortDate = function() {
    var date = new Date(this.getFullYear(), this.getMonth(), this.getDate());
    return date;
};

function monthChanged(year, month, instance) {
    var date = new Date(year, month - 1);

    $.getJSON('json.do', {
        time : date.getTime()
    }, updateCalendars);
}

function updateCalendars(data, status) {
    agenda = data;
    $('#calendar').datepicker('refresh');
}

var agenda = [];

$(function() {    
    $('#calendar').datepicker( {
        beforeShowDay : highlightDates,
        onChangeMonthYear : monthChanged,
        changeMonth : false,
        changeYear : false,
        showButtonPanel : false
    });
});

有人知道这是错误还是预期行为?

【问题讨论】:

    标签: javascript jquery datepicker


    【解决方案1】:

    嗯,这对我来说太愚蠢了。问题是 getJSON 方法。它显然对它接受的 json 非常挑剔。因此,在我生成正确的 json 后,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-08
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      相关资源
      最近更新 更多