我在C#.Net项目中使用Fullcalendar 3.3.1。
我定义了日历
$("#calendar").fullCalendar({
'header': {
'left': "prev,next today",
'center': "title",
'right': "month,agendaWeek,agendaDay"
},
'dayClick': function (myDate, jsEvent, view) {
var tmpDate = moment(myDate.format());
if (view.name !== "agendaDay") {
console.log("clicked on non agendaDay: " + tmpDate.format());
$("#calendar").fullCalendar("gotoDate", tmpDate.format());
$("#calendar").fullCalendar("changeView", "agendaDay");
} else {
console.log("clicked on agendaDay");
}
},
...
默认情况下,网页会显示month
视图。点击日期块(实际上在除agendaDay
之外的任何视图中)都会转到agendaDay
视图,查看所点击的日期...或它应该。这是今天早上这样做但现在已经停止了。不管我点击的日期,它现在都需要“今天”。
我在小提琴中测试了这个,但它在那里工作。我可以在console.log
中看到预期的日期。我可以使用Chrome开发者工具并在gotoDate
电话上设置断点,我可以看到正确的日期,但最终结果是“今天”。
我直接使用myDate
参数,这是一个moment
对象,但是没有用。我决定使用tmpDate
变量来确保某些内容不会改变我的日期。
我错过了什么?
修改为了解决这个问题,我改变了gotoDate
和changeView
次调用的顺序,现在可以正确设置新视图的日期。去图
答案 0 :(得分:1)
更改视图会将您的日期重置为今天。
您应该changeView然后转到gotoDate,或者如果您想要在切换到新视图的同时导航到新日期,您可以指定日期参数,如下所示:
$('#calendar').fullCalendar('changeView', 'agendaDay', '2017-06-01');
以下是jsfiddle。