在 FullCalendar 中突出显示所选日期
Highlighting the selected date in FullCalendar
我正在尝试突出显示 FullCalender.io 中选定的日期(类似于当前日期)。
以下 FullCalendar - Highlight a particular day in week view 我尝试了以下方法,它基本上是在单击时重新呈现日历,并突出显示日期与单击日期匹配的单元格。
dayRender: function(date, cell)
{
var moment = $('#calendar').fullCalendar('getDate');
if (moment.get('date') == date.get('date'))
{
$(cell).addClass('fc-state-highlight');
}
else
{
$(cell).removeClass('fc-state-highlight');
}
},
dayClick: function (date, allDay, jsEvent, view) {
$('#calendar').fullCalendar('render');
},
但它什么也没做。 :-(
你可以在v1.x
中使用这段代码
$('#calendar').fullCalendar({
dayClick: function (date, allDay, jsEvent, view) {
$(".fc-state-highlight").removeClass("fc-state-highlight");
$(jsEvent.target).addClass("fc-state-highlight");
}
});
v2.X
$('#calendar').fullCalendar({
dayClick: function (date, jsEvent, view) {
$(".fc-state-highlight").removeClass("fc-state-highlight");
$(jsEvent.target).addClass("fc-state-highlight");
}
});
CSS .fc-state-highlight {background:red;}
注意:这可以通过其他方式实现,也可以利用单元格的 data-date
属性和函数的 date
参数 dayClick
$('#calendar').fullCalendar({
dayClick: function (date, jsEvent, view) {
$(".fc-state-highlight").removeClass("fc-state-highlight");
$("td[data-date="+date.format('YYYY-MM-DD')+"]").addClass("fc-state-highlight");
}
});
在其他答案的基础上,这将满足您的需要:
dayClick: function (date, jsEvent, view) {
$('.fc-day').each(function () {
$(this).removeClass("fc-state-highlight");
});
$("td[data-date=" + date.format() + "]").addClass("fc-state-highlight");
},
v2.X
$('#calendar').fullCalendar({
dayClick: function (date, jsEvent, view) {
$(".fc-state-highlight").removeClass("fc-state-highlight");
$(this).addClass("fc-state-highlight");
}
});
CSS .fc-state-highlight {background:red;}
一个快速的解决方法是使用 selectable
:
var calendar = $('#calendar');
calendar.fullCalendar({
selectable: true
})
即使这个选项 Allows a user to highlight multiple days or timeslots by clicking and dragging
(来源:https://fullcalendar.io/docs/selection/selectable/),它也有 副作用 如果你只点击一个选择的日期日。
我正在尝试突出显示 FullCalender.io 中选定的日期(类似于当前日期)。
以下 FullCalendar - Highlight a particular day in week view 我尝试了以下方法,它基本上是在单击时重新呈现日历,并突出显示日期与单击日期匹配的单元格。
dayRender: function(date, cell)
{
var moment = $('#calendar').fullCalendar('getDate');
if (moment.get('date') == date.get('date'))
{
$(cell).addClass('fc-state-highlight');
}
else
{
$(cell).removeClass('fc-state-highlight');
}
},
dayClick: function (date, allDay, jsEvent, view) {
$('#calendar').fullCalendar('render');
},
但它什么也没做。 :-(
你可以在v1.x
中使用这段代码$('#calendar').fullCalendar({
dayClick: function (date, allDay, jsEvent, view) {
$(".fc-state-highlight").removeClass("fc-state-highlight");
$(jsEvent.target).addClass("fc-state-highlight");
}
});
v2.X
$('#calendar').fullCalendar({
dayClick: function (date, jsEvent, view) {
$(".fc-state-highlight").removeClass("fc-state-highlight");
$(jsEvent.target).addClass("fc-state-highlight");
}
});
CSS .fc-state-highlight {background:red;}
注意:这可以通过其他方式实现,也可以利用单元格的 data-date
属性和函数的 date
参数 dayClick
$('#calendar').fullCalendar({
dayClick: function (date, jsEvent, view) {
$(".fc-state-highlight").removeClass("fc-state-highlight");
$("td[data-date="+date.format('YYYY-MM-DD')+"]").addClass("fc-state-highlight");
}
});
在其他答案的基础上,这将满足您的需要:
dayClick: function (date, jsEvent, view) {
$('.fc-day').each(function () {
$(this).removeClass("fc-state-highlight");
});
$("td[data-date=" + date.format() + "]").addClass("fc-state-highlight");
},
v2.X
$('#calendar').fullCalendar({
dayClick: function (date, jsEvent, view) {
$(".fc-state-highlight").removeClass("fc-state-highlight");
$(this).addClass("fc-state-highlight");
}
});
CSS .fc-state-highlight {background:red;}
一个快速的解决方法是使用 selectable
:
var calendar = $('#calendar');
calendar.fullCalendar({
selectable: true
})
即使这个选项 Allows a user to highlight multiple days or timeslots by clicking and dragging
(来源:https://fullcalendar.io/docs/selection/selectable/),它也有 副作用 如果你只点击一个选择的日期日。