---
# System prepended metadata

title: fullcalendar & Calendar not loaded automatically in bootstrap tab
tags: [Javascript套件]

---

###### tags:`Javascript套件` 

# fullcalendar & Calendar not loaded automatically in bootstrap tab



[fullcalendar](https://fullcalendar.io/)

使用tab切換搭配fullcalendar月曆會有月曆無法自動載入問題
換Boostrap tab使用,以下示範working version & not working version

### [參考教學](https://stackoverflow.com/questions/57795282/full-calendar-is-not-loading-automatically-in-bootstrap-tab)

###  [not working](https://corly74.github.io/F2eComponent/fullCalendar/notworking.html)

```
<script>

	document.addEventListener('DOMContentLoaded', function() {
	  var calendarEl = document.getElementById('calendar');
  
	  var calendar = new FullCalendar.Calendar(calendarEl, {
		headerToolbar: {
		  left: 'prev,next today',
		  center: 'title',
		  right: 'dayGridMonth,timeGridWeek,timeGridDay'
		},
		defaultView: 'month',
		initialDate: '2020-09-12',
		navLinks: true, // can click day/week names to navigate views
		selectable: true,
		selectMirror: true,
		select: function(arg) {
		  var title = prompt('Event Title:');
		  if (title) {
			calendar.addEvent({
			  title: title,
			  start: arg.start,
			  end: arg.end,
			  allDay: arg.allDay
			})
		  }
		  calendar.unselect()
		},
		eventClick: function(arg) {
		  if (confirm('Are you sure you want to delete this event?')) {
			arg.event.remove()
		  }
		},
		editable: true,
		dayMaxEvents: true, // allow "more" link when too many events
		events: [
		  {
			title: 'All Day Event',
			start: '2020-09-01'
		  },
		  {
			title: 'Long Event',
			start: '2020-09-07',
			end: '2020-09-10'
		  },
		  {
			groupId: 999,
			title: 'Repeating Event',
			start: '2020-09-09T16:00:00'
		  },
		  {
			groupId: 999,
			title: 'Repeating Event',
			start: '2020-09-16T16:00:00'
		  },
		  {
			title: 'Conference',
			start: '2020-09-11',
			end: '2020-09-13'
		  },
		  {
			title: 'Meeting',
			start: '2020-09-12T10:30:00',
			end: '2020-09-12T12:30:00'
		  },
		  {
			title: 'Lunch',
			start: '2020-09-12T12:00:00'
		  },
		  {
			title: 'Meeting',
			start: '2020-09-12T14:30:00'
		  },
		  {
			title: 'Happy Hour',
			start: '2020-09-12T17:30:00'
		  },
		  {
			title: 'Dinner',
			start: '2020-09-12T20:00:00'
		  },
		  {
			title: 'Birthday Party',
			start: '2020-09-13T07:00:00'
		  },
		  {
			title: 'Click for Google',
			url: 'http://google.com/',
			start: '2020-09-28'
		  }
		]
	  });
  
	  calendar.render();
	});
  
  </script>


<style>
	.label {
		cursor: pointer;
		color: rgba(255, 255, 255, 0.8);
		background-color: #b5b6b6;
		box-sizing: border-box;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		height: 56px;
		transition: color 0.2s ease;
		width: 100%;
	}




	.list-group .active {
		z-index: 2;
		color: #007bff;
		background-color: #ffffff;
		border-bottom: 5px solid #007bff;
		border-left: white;
		border-top: white;
		border-right: white;

	}

	.menu-flex {
		flex-direction: row;
	}

	.list-group-item {
		border: 1px solid rgba(0, 0, 0, 0);
	}

	h1 {
		font-size: 26px;
		background: #b5b6b6;
		color: white;
		padding: 40px 0 100px 20%;
		margin-bottom: 50px;
	}

	.tab-wrap {
		margin-top: -106px;
	}

	 /* .fc-col-header {
    max-width: 1024px !important;
   
  } */

   #calendar  {
    height: 883px !important;
  } 

</style>

<h1>Material Design CSS Only Tabs</h1>
		<div class="tab-wrap container ">
			<div class="list-group menu-flex" id="myList" role="tablist">

				<a class="list-group-item list-group-item-action active label  rounded-0 " data-toggle="tab"
					href="#home" role="tab">Home
				</a>


				<a class="list-group-item list-group-item-action label " data-toggle="tab" href="#profile"
					role="tab" >Profile</a>
				<a class="list-group-item list-group-item-action label " data-toggle="tab" href="#messages"
					role="tab" >Messages</a>
				<a class="list-group-item list-group-item-action label  rounded-0" data-toggle="tab" href="#settings"
					role="tab">Settings</a>
			</div>

			<div class="tab-content">
				<div class="tab-pane active mt-2 " id="home" role="tabpanel">
					Velit aute mollit ipsum ad dolor consectetur nulla officia culpa adipisicing exercitation
					fugiat tempor. Voluptate deserunt sit sunt nisi aliqua fugiat proident ea ut. Mollit voluptate
					reprehenderit occaecat
					nisi ad non minim tempor sunt voluptate consectetur exercitation id ut nulla. Ea et fugiat aliquip
					nostrud sunt incididunt
					consectetur culpa aliquip eiusmod dolor. Anim ad Lorem aliqua in cupidatat nisi enim eu nostrud do
					aliquip veniam minim.</div>

				<div class="tab-pane mt-2" id="profile" role="tabpanel">

					<div id='calendar'></div>


				</div>

				<div class="tab-pane mt-2" id="messages" role="tabpanel">

					Ut ut do pariatur aliquip aliqua aliquip exercitation do nostrud commodo reprehenderit aute ipsum
					voluptate. Irure Lorem et laboris nostrud
					amet cupidatat cupidatat anim do ut velit mollit consequat enim tempor. Consectetur est minim
					nostrud
					nostrud consectetur irure labore
					voluptate irure. Ipsum id Lorem sit sint voluptate est pariatur eu ad cupidatat et deserunt culpa
					sit
					eiusmod deserunt. Consectetur et
					fugiat anim do eiusmod aliquip nulla laborum elit adipisicing pariatur cillum.

				</div>

				<div class="tab-pane " id="settings" role="tabpanel">
					Irure enim occaecat labore sit qui aliquip reprehenderit amet velit. Deserunt ullamco ex elit
					nostrud ut
					dolore nisi officia magna sit
					occaecat laboris sunt dolor. Nisi eu minim cillum occaecat aute est cupidatat aliqua labore aute
					occaecat ea aliquip sunt amet.
					Aute mollit dolor ut exercitation irure commodo non amet consectetur quis amet culpa. Quis ullamco
					nisi
					amet qui aute irure eu.
					Magna labore dolor quis ex labore id nostrud deserunt dolor eiusmod eu pariatur culpa mollit in
					irure.
				</div>
			</div>
		</div>
	</div>
```





### [working](https://corly74.github.io/F2eComponent/fullCalendar/working.html#menu1)

```

<script>

	document.addEventListener('DOMContentLoaded', function() {
	  var calendarButton = document.getElementById('calendarButton');
	  var calendarEl = document.getElementById('calendar');
	  var calendar = new FullCalendar.Calendar(calendarEl, {
		headerToolbar: {
		  left: 'prev,next today',
		  center: 'title',
		  right: 'dayGridMonth,timeGridWeek,timeGridDay'
		},
		defaultView: 'month',
		initialDate: '2020-09-12',
		navLinks: true, // can click day/week names to navigate views
		selectable: true,
		selectMirror: true,
		select: function(arg) {
		  var title = prompt('Event Title:');
		  if (title) {
			calendar.addEvent({
			  title: title,
			  start: arg.start,
			  end: arg.end,
			  allDay: arg.allDay
			})
		  }
		  calendar.unselect()
		},
		eventClick: function(arg) {
		  if (confirm('Are you sure you want to delete this event?')) {
			arg.event.remove()
		  }
		},
		editable: true,
		dayMaxEvents: true, // allow "more" link when too many events
		events: [
		  {
			title: 'All Day Event',
			start: '2020-09-01'
		  },
		  {
			title: 'Long Event',
			start: '2020-09-07',
			end: '2020-09-10'
		  },
		  {
			groupId: 999,
			title: 'Repeating Event',
			start: '2020-09-09T16:00:00'
		  },
		  {
			groupId: 999,
			title: 'Repeating Event',
			start: '2020-09-16T16:00:00'
		  },
		  {
			title: 'Conference',
			start: '2020-09-11',
			end: '2020-09-13'
		  },
		  {
			title: 'Meeting',
			start: '2020-09-12T10:30:00',
			end: '2020-09-12T12:30:00'
		  },
		  {
			title: 'Lunch',
			start: '2020-09-12T12:00:00'
		  },
		  {
			title: 'Meeting',
			start: '2020-09-12T14:30:00'
		  },
		  {
			title: 'Happy Hour',
			start: '2020-09-12T17:30:00'
		  },
		  {
			title: 'Dinner',
			start: '2020-09-12T20:00:00'
		  },
		  {
			title: 'Birthday Party',
			start: '2020-09-13T07:00:00'
		  },
		  {
			title: 'Click for Google',
			url: 'http://google.com/',
			start: '2020-09-28'
		  }
		]
	  });
  
	  calendar.render();
	});
  
  </script>


<style>
	.label {
		cursor: pointer;
		color: rgba(255, 255, 255, 0.8);
		background-color: #b5b6b6;
		box-sizing: border-box;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		height: 56px;
		transition: color 0.2s ease;
		width: 100%;
		
	}




	.list-group .active {
		z-index: 2;
		color: #007bff;
		background-color: #ffffff;
		border-bottom: 5px solid #007bff;
		border-left: white;
		border-top: white;
		border-right: white;

	}

	.menu-flex {
		flex-direction: row;
	}

	.list-group-item {
		border: 1px solid rgba(0, 0, 0, 0);
	}

	h1 {
		font-size: 26px;
		background: #b5b6b6;
		color: white;
		padding: 40px 0 100px 20%;
		margin-bottom: 50px;
	}

	.tab-wrap {
		margin-top: -106px;
	}

	 /* .fc-col-header {
    max-width: 1024px !important;
   
  } */

   #calendar  {
    height: 883px !important;
  } 

</style>

<h1>Material Design CSS Only Tabs</h1>
		<div class="tab-wrap container ">
			<ul class="nav nav-tabs list-group menu-flex">
				<li ><a data-toggle="tab" role="tab" href="#home" class="label list-group-item text-decoration-none active ">Home</a></li>
				<li><a id="calendarButton" data-toggle="tab" role="tab" class="label list-group-item text-decoration-none " href="#menu1">Menu 1</a></li>
			  </ul>
			  
			  <div class="tab-content">
				<div id="home" class="tab-pane active in " role="tabpanel" >
				  <h3>HOME</h3>
				  <p>Some content.</p>
				</div>
				<div id="menu1" class="tab-pane active in fade" role="tabpanel">
				  <h3>Calendar not loaded automatically :(</h3>
				  <div id='calendar'></div>
				</div>
			  </div>
		</div>
```