我正在使用jQuery的全日历,由于某种原因,日历在页面上出现了两次。这不是关于在同一页上有两个fullcalendar实例的问题。
相反,在第一个日历的底部,有第二个相同的日历。
我确认我的页面中只有一个#calendar div,所以我相信这个错误与调用fullcalendar.js的.js有关。
任何帮助都非常感谢。
JS代码:
jQuery('#calendar').fullCalendar({
year: jQuery.today.getFullYear(),
month: jQuery.today.getMonth(),
date: jQuery.today.getDate(),
theme: true,
contentHeight: 1000,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
defaultView: 'agendaDay',
dayClick: function(date, allDay, jsEvent, view) {
// a lot of custom code
}
});
HTML:
<table><tr><td valign="top" width="700px"><div id="calendar"></div></td></tr></table>
javascript中fullcalendar的其他调用(这会将一个datepicker放在div中,位于同一页面上#calendar div的左侧):
jQuery('#datepicker_for_calendar').datepicker({
defaultDate: jQuery.today,
minDate: jQuery.startDate,
maxDate: jQuery.endDate,
inline: true,
showButtonPanel: true,
onSelect: function(dateText, inst) {
var d = new Date(dateText);
jQuery('#calendar').fullCalendar('gotoDate', d);
selectedDate = d;
}
});
发布于 2011-03-20 04:26:09
好的,经过一周的bug测试之后,我发现了这个jQuery插件:
once()
http://plugins.jquery.com/project/once
一旦应用到.fullcalendar之前的#calendar div,问题就解决了,只呈现了一个日历。
工作代码:
jQuery('#calendar').once('calendar').fullCalendar({
... })
发布于 2012-02-13 23:41:21
我最近遇到了同样的问题,并尝试了once() jQuery插件,它对我不起作用。但是,我重新下载了未缩小的源代码,并在initialRender方法中添加了以下行作为该方法的第一行,它解决了我重复的日历方法。
element.html('');
我猜我的问题来自于我在没有刷新页面的情况下重新初始化下拉更改的日历,这似乎是js代码不断地将日历添加到现有的div中,而没有清除现有的日历。
发布于 2012-03-28 04:05:27
在精简版本的f()
函数中添加a.html('');
。
我在一个对话框中打开了我的日历,每次我点击一个按钮打开,就会有另一个日历。
经过一些阅读,我找到了要使用的方法- .fullCalendar('destroy')
-这样你就不需要编辑插件了。
现在,关闭对话框并重新打开时,只显示一个日历。
https://stackoverflow.com/questions/5264681
复制相似问题