Это, конечно, удивительно! Вы уверены, что правильно скопировали и вставили? Единственное объяснение, которое я сразу вижу, это то, что элемент DOM #calendar
еще не загружен или что-то в этом роде, но jQuery не должен выполнять $(document).ready
до тех пор, пока не будет загружен каждый элемент DOM, поэтому это определенно странно.
Ваша проблема, скорее всего, заключается в недетерминированности браузера, то есть, скорее всего, она будет работать по-разному в разных браузерах между обновлениями.
Можете ли вы попробовать удалить весь код fullCalendar
из $(document).ready(
и вместо этого просто иметь:
$(document).ready(function() {
console.log(document.getElementById('calendar'));
});
Попробуй это ВНУТРИ головы и снаружи и посмотри, какая разница.