jQuery Datepicker:用户下个月或上个月?

时间:2012-11-05 17:08:55

标签: jquery jquery-ui jquery-ui-datepicker

用户点击“下一个”月份或“上一个月”后,我需要使用自定义css重新填充日期选择器。我正在进入onChangeMonthYear事件,但不知道用户的走向(下个月或上个月)。有什么简单的内置会给我这个吗?如果没有,最简单的解决方案是什么?

*在此处添加代码以澄清请注意,事件实际上将通过服务器端进入,我在构建时只是在这里贬低了一些数据

 var Event = function(text, className) {
            this.text = text;
            this.className = className;
        };

        var events = {};
        events[new Date("11/12/2012")] = new Event("A Good Day", "yellowDot");
        events[new Date("11/20/2012")] = new Event("Mkay", "blueDot");

        $('#date').datepicker({              
           beforeShowDay: function (date) {
               var event = events[date];
               if(event) {
                   return [true, event.className, event.text];
               }
               else {
                   return [true, '', ''];
               }
           },
           onChangeMonthYear: function () {
               //reload another calendar, past or future?

           }
        });

2 个答案:

答案 0 :(得分:4)

您正在将onChangeMonthYear处理函数传递给datepicker小部件。该函数将使用三个参数调用:

  • 新选择的年份,
  • 新选择的月份,
  • datepicker小部件实例。

因此,您可以编写如下内容:

onChangeMonthYear: function(year, month, widget) {
    reloadCalendar(month, year);
}

如果要操作自动完成窗口小部件,则窗口小部件实例参数作为快捷方式提供,以避免通过桥。例如,如果您想立即关闭日期选择器,它允许您编写:

widget.hide();

而不是:

$(this).datepicker("hide");

答案 1 :(得分:2)

动态创建Datepicker,因此您应该使用.live

$('.ui-datepicker-next').live("click", function() {
  alert(1)
}