2010-11-01 72 views
0

建设使用脚本如果您拨打一个电话脚本的<head>建设 - 那么它的工作原理,但如果它在<body>建设事业 - 这是行不通的:(FullCalendar:在<body>

工作:

<html> 
<head> 
.. 
<script type="text/javascript" src="../js/fullcalendar.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 
    $('#calendar').fullCalendar({ 
    editable: true, 
    events: [ 
    { 
    title: 'All Day Event', 
    start: new Date(y, m, 1) 
    } 
    ] 
    }); 
}); 
</script> 
</head> 
<body> 
<div id='calendar'></div> 
</body> 
</html> 

不起作用:

<html> 
<head> 
.. 
</head> 
<body> 
<script type="text/javascript" src="../js/fullcalendar.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 
    $('#calendar').fullCalendar({ 
    editable: true, 
    events: [ 
    { 
    title: 'All Day Event', 
    start: new Date(y, m, 1) 
    } 
    ] 
    }); 
}); 
</script> 
<div id='calendar'></div> 
</body> 
</html> 

告诉我我做错了什么? ..

回答

0

这当然令人惊讶!你确定你复制并粘贴正确吗?我可以立即看到的唯一解释是因为DOM元素#calendar尚未加载或类似的东西,但jQuery不应该执行$(document).ready,直到每个DOM元素被加载,所以它绝对是奇怪的。

您的问题很可能是浏览器非确定性,这意味着它很可能在不同的浏览器刷新之间以不同的方式工作。

你可以尝试从$(document).ready(内删除所有fullCalendar代码,而是只有这个:

$(document).ready(function() { 
    console.log(document.getElementById('calendar')); 
}); 

试试里面的头外,看它起到什么作用。