为了账号安全,请及时绑定邮箱和手机立即绑定

我的全日历只列出了 3 个事件中的 1 个,我有 for 循环?

我的全日历只列出了 3 个事件中的 1 个,我有 for 循环?

繁星淼淼 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

});


查看完整回答
反对 回复 2023-06-15
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信