3

在用户单击“下一个”月份或“上一个”月份后,我需要使用自定义 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?

           }
        });
4

2 回答 2

4

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

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

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

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

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

widget.hide();

代替:

$(this).datepicker("hide");
于 2012-11-05T18:59:35.917 回答
2

Datepicker 是动态创建的,所以你应该使用.live

$('.ui-datepicker-next').live("click", function() {
  alert(1)
}
于 2013-01-31T08:14:54.593 回答