我在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
调用的顺序,现在它可以正确设置新视图的日期。去搞清楚 最佳答案
更改视图会将您的日期重置为今天。
您应该先changeView然后转到gotoDate,或者如果您想导航到新日期同时切换到新视图,则可以这样指定日期参数:
$('#calendar').fullCalendar('changeView', 'agendaDay', '2017-06-01');
在这里工作jsfiddle。