繁星淼淼
2023-06-15 17:46:39
我放在上下文中 我有我的完整日歷,它只列出了 1 個事件,沒有列出其他事件 我已經查看了代碼,也許我需要一些邏輯,但我找不到正在發生的事情,然后我附上代碼和解釋 /* Initialize the calendar */ var ide = document.getElementsByName("id"); var fecha = document.getElementsByName("fecha"); var nombre = document.getElementsByName("nombre"); var horaInicio = document.getElementsByName("horaInicio"); var horaFin = document.getElementsByName("horaFin"); var id=""; var dia = ""; var titulo = ""; var inicio = ""; var fin = ""; var date = new Date(); var d = date.getDate(); var m = date.getMonth(); var y = date.getFullYear(); var form = ''; var today = new Date($.now()); var citas=[]; for (var x = 0; x < nombre.length; x++) { var defaultEvents =[{ id: id + ide[x].value, title: titulo + nombre[x].value, start: dia + fecha[x].value + 'T' + inicio + horaInicio[x].value, end: dia + fecha[x].value + 'T' + fin + horaFin[x].value }]; citas.push(defaultEvents); } var $this = this; for (var i=0;i<citas.length;i++){ $this.$calendarObj = $this.$calendar.fullCalendar({ events: citas[i] }); }一開始,我收集來自我的 jsp 文件的值,我創建了一個 for 循環,我在其中創建了一個對象,在這個對象中,每個事件都發生了,然后我將它們添加到一個名稱數組 (citas) 中,這將在我的控制臺中成為我的結果這是它在我的控制臺上顯示的內容。在此之后我做了另一個 for 循環,它必須通過調用數組并列出每個位置來列出每個事件,結果它列出了 3 個事件中的 1 個
1 回答

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
我可以看到兩個邏輯錯誤:
1)
var defaultEvents =[{ ... }]
這將創建一個數組,其中包含一個對象。然后將此數組推入citas數組。因此,您的事件結構是一組數組(其中每個數組包含一個對象)。但是 fullCalendar 需要一組對象。
所以把這個改成
var defaultEvents = { ... }
反而。
2)
for (var i=0;i<citas.length;i++){
$this.$calendarObj = $this.$calendar.fullCalendar({
events: citas[i]
});
}
這是沒有意義的。您的代碼在這里說的是“遍歷 citas 數組。對于數組中的每個項目,重新聲明$calendarObj為一個新日歷并將下一個數組citas作為事件”。
如您所見,這每次都會覆蓋您的日歷,因此您最終會得到一個日歷,其中包含您添加到 citas 的最后一個數組條目——正如我們所見,它只包含一個事件。
如果您進行了我在第 1 點中提到的更改,那么設置您的日歷以包含所有事件就變得微不足道了——只需將上面的代碼更改為:
$this.$calendarObj = $this.$calendar.fullCalendar({
events: citas
});
添加回答
舉報
0/150
提交
取消