我的javascript代码存在一个小问题。我正在尝试使用fullCalendar,并且90%的时间它完美无缺。但是,大约10%的时间,它似乎无法加载fullCalendar函数,我不知道为什么。
我在日历放入的div上方调用了3个外部脚本:
<script src="../../../../assets/lib/moment.min.js"></script>
<script src="../../../../assets/lib/jquery.min.js"></script>
<script src="../../../../assets/js/fullcalendar.js"></script>
<div id="calendar"></div>
以下是我的javascript:
//variables to pull the serialized data from c# through to javascript.
var dateStart = '<%=dateStartListToJS%>';
var dateEnd = '<%=dateEndListToJS%>';
var titles = '<%=titlesListToJS%>';
var links = '<%=linksListToJS%>';
//use JSON to parse into arrays.
var dateStartArray = JSON.parse(dateStart);
var dateEndArray = JSON.parse(dateEnd);
var titlesArray = JSON.parse(titles);
var linksArray = JSON.parse(links);
//initiate variable to handle our calendar events.
var JSONEvents = [];
//for testing...
//alert(dateStartArray + dateEndArray + titlesArray + linksArray);
//show the calendar and hide the buttons to switch between the calendar and list.
$("#calendar").show();
$(".viewAsList").hide();
$(".viewAsCalendar").hide();
//while we still have more calendar events to add, run this loop to add courses to the calendar.
//calendar currently only displays the start date of the course.
for (var i = 0; i < dateStartArray.length ; i++) {
JSONEvents.push(
{
"title": titlesArray[i],
"url": linksArray[i],
"start": dateStartArray[i],
"end": dateEndArray[i],
"allDay": true,
//"backgroundColor" : "#FFF"
});
}
//function: createCalendar. creates the calendar
function createCalendar() {
//using fullcalendar
$('#calendar').fullCalendar({
//setting up the header of the calendar.
header: {
center: '',
right: 'prev,next',
left: 'title'
//right: 'month'
},
eventColor: '#FCFCFC',
events: JSONEvents
});
$(".viewAsCalendar").show();
$("#calendar").hide();
$('.viewAsCalendar').click(function () {
$(".viewAsCalendar").hide();
$(".viewAsList").show();
$("#courseDetailDisplay").hide();
$("#calendar").show();
});
$('.viewAsList').click(function () {
$(".viewAsCalendar").show();
$(".viewAsList").hide();
$("#courseDetailDisplay").show();
$("#calendar").hide();
});
}
//if the calendar can't load and an error is thrown, try reloading the calendar
//function loadCalendar() {
// try {
// createCalendar();
// }
// catch (err) {
// //alert("test");
// setTimeout(function () {
// loadCalendar();
// }, 4000);
// }
//}
$(window).load(function () {
createCalendar();
});
当我运行页面时,它通常可以正常工作,但是当它失败时,我在包含$('#calendar').fullCalendar({
的行上收到错误,说:
未捕获的TypeError:undefined不是函数
有谁知道为什么会这样?我已经尝试使用(document).ready和(head).ready切换(窗口).load,并且都没有解决问题。
非常感谢任何帮助。
谢谢!
编辑:根据建议我尝试了以下内容:
将所有引号更改为双引号“” 添加了150ms的超时 检查网络选项卡以查看是否有任何文件未加载。
不幸的是,由于所有3个文件都在加载,所以上述任何一个都没有帮助,最大加载时间为50毫秒(通常约为10-15毫秒)。
还有其他建议吗?我在这里提供帮助