2025-01-11 JavaScript 系列八:第4課 ── 行事曆應用程式-步驟02
把 datetimepicker 的程式碼寫在 Calendar.vue 裡面**,這樣會比較直觀,也比較容易理解整體流程 👍
✅ 完整範例:簡易版的 Calendar.vue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <template> <div> <h2>行事曆應用程式</h2>
<label for="datetime">選擇日期時間:</label> <input type="text" id="datetime" ref="datetimeInput" /> </div> </template>
<script setup> import { ref, onMounted } from 'vue'
const datetimeInput = ref(null)
onMounted(() => { // 初始化 jQuery datetimepicker $(datetimeInput.value).datetimepicker({ format: 'Y-m-d H:i', // 日期時間格式 step: 30 // 每 30 分鐘一格 }) }) </script>
<style scoped> input { padding: 8px; font-size: 1rem; margin-top: 10px; } </style>
|
✅ 確認幾件事:
- 你有引入 CDN 嗎?
確保你 index.html 裡面有這些:
1 2 3 4 5 6 7 8
| <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.full.min.js"></script>
|
- 你有用
ref="datetimeInput" 指定輸入框嗎?
- 初始化放在
onMounted() 裡嗎?(保證 DOM 載入後才初始化)
🧪 成功的畫面會:
如果你這邊成功了,我們就可以往下一步做:
- 👉 加一個「事件標題」欄位?
- 👉 或者加入「新增事件」按鈕,儲存到 localStorage?
- 👉 還是你想開始加入 FullCalendar 畫整個月的日曆?
你決定節奏,我會陪你慢慢做,一步一個功能 👣
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>JavaScript 系列八 -Vue 小型應用程式</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css" />
<link href="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.8/main.min.css" rel="stylesheet">
</head> <body> <div id="app"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.full.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.17/index.global.min.js "></script>
<script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.8/locales-all.min.js"></script>
<script type="module" src="/src/main.js"></script> </body> </html>
|