我在我的项目中使用FullCalendar。我使用了背景事件rendering="background"
。如何检测用户是否点击了背景事件?我尝试这个但是它不起作用,因为无法点击所有日期。
dayClick: function (start, end, allDay, jsEvent, view,color,calEvent) {
if (calevent.rendering==="background") {
alert('Click Background Event Area');
}
else{
$('#modal1').modal('show');
}
if (start.isBefore(moment())) {
$('#calendar').fullCalendar('unselect');
return false;
}
},
答案 0 :(得分:3)
由于fullCalendar没有公开"点击"在背景事件上输入事件,我能想到的唯一方法就是DIY方法。基本理念:
我还没有对此进行测试,但它基于我找到的一些旧代码,所以希望你能得到这个想法:
select: function(start, end, jsEvent, view) {
var cal = $("#calendar"); //put the ID of your calendar element here
var evts = cal.fullCalendar('clientEvents'); //get all in-memory events
var selectedEvent = null;
for (i in evts) {
if (evts[i].rendering == "background" && start.isBefore(evts[i].end) && end.isAfter(evts[i].start)) {
selectedEvent = evts[i];
}
}
}
唯一的缺陷是"选择"允许选择一个时间段,而不仅仅是单击,因此可能是选择重叠背景事件,而不是完全包含在其中。如果不适合您,您可以稍微调整一下逻辑 - 例如要求开始和结束都在事件的边界内。