全日历根据外部事件添加颜色
我正在使用jquery全日历。 在页面I中有两个输入元素
1- startdate(开始某个活动的日期)
2频率(该事件的日期之后,它将重复)
因此,基于这两个参数,我必须将颜色从startdate设置为enddate(sartdate + frequency)。
那么外部我怎么能把颜色放在全日历?
jsfiddle link-http://jsfiddle.net/bhupendra21589/f160m655/
更改startdate或frequency..date从startdate到enddate(startdate + frequency)应该被着色???????
plzz helpp
您可以使用dayRender回调 ,它是“修改日期单元格的钩子”。
此示例在dayRender上执行以下操作:
1)检查输入的开始日期是否有效。
2)添加频率的天数。 结果将是选择的初始日期+频率的天数(因此,如果频率为2,则突出显示的总天数将为3)。 如果这不是预期的行为,则将if语句中的检查更改为< endDate.format("YYYYMMDD")
。
3)当日历绘制并且每天渲染时,它会检查正在渲染的日期是否在开始日期+频率之内。 如果是这样,请添加一个类以突出显示它。
$(document).ready(function() { var loadCal = function() { $('#fullCal').fullCalendar({ header: { left: '', center: 'prev title next today', right: '' }, dayRender: function(date, cell) { var startDate = moment($("#startdate").val()); if (startDate.isValid()) { var endDate = moment(startDate).add($("#frequency").val(), 'days'); //just compare the YYYYMMDD so don't run into problems with hour/minute/second, etc. if we used valueOf() or similar if (moment(date).format("YYYYMMDD") >= startDate.format("YYYYMMDD") && moment(date).format("YYYYMMDD") <= endDate.format("YYYYMMDD")) { cell.addClass("pjpDay"); }; } } }); }; //reload calendar on input change $("input").on("change", function() { $('#fullCal').fullCalendar('destroy'); //must redraw the calendar, so destroy it and then reload. loadCal(); }); loadCal(); //initial load of calendar });
.pjpDay { background-color: #6666cc !important; }
在没有代码的情况下,几乎无法正确回答问题。
但是……这是最好的猜测。 日历响应此示例中的按钮单击。 您将获取日期和颜色,并创建您的事件对象,如下所示:
$('button').on('click', function() { e.preventDefault() $('#calendar').fullCalendar({ events: [{ title: '1', start: new Date(2014, 02, 25, 10, 30), end: new Date(2014, 02, 27, 10, 30), allDay: false, editable: false, backgroundColor: '#ED1317' }, { title: '2', start: new Date(2014, 02, 26, 10, 30), end: new Date(2014, 02, 28, 10, 30), allDay: false, editable: false, backgroundColor: '#BADA55' }] }); })