2010-11-01 67 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')); 
}); 

試試裏面的頭外,看它起到什麼作用。