插入选定日期范围内的单个新事件时出现问题



我正在使用GREAT jquery插件fullcalendar。

这是我的问题。

当用户通过单击并拖动日历上的2个或3个连续日期来选择日期范围时。例如,从任何一个月的3号到5号。

select:function(开始、结束、allDay)事件以当月3日的开始日期和当月5日的结束日期触发。

我想做的是为每个日期插入一个单独的事件。所以我不想插入一个持续3天的长事件。。。我想为每一天插入单独的事件。

这是我使用的代码:

select: function (start, end, allDay) {
   var title = 'test';// prompt('Event Title:');
   while (start.valueOf() < end.valueOf() + 86400000) { 
     calendar.fullCalendar('renderEvent',
        {
        title: title,
        start: start,
        allDay: allDay
        },
        true // make the event "stick"
        );
        start.setTime(start.valueOf() + 86400000); 
    } 
    calendar.fullCalendar('unselect');
 },

但每次插入新事件时,它都会将最后插入的事件上移1天。所以最后,我正在创建的所有3个事件都将在5日创建。5日将举行3场比赛。当我在代码中插入break时,我实际上可以看到在正确的日期创建的事件,但当它转到下一个日期(从3日到4日)时,最后插入的日期(当月3日)也会被推到4日。

如果我一次只选择一个日期,那么代码也会发生同样的情况。

假设我选择1月3日。该活动将于1月3日创建。但如果我在1月15日点击,该事件将在15日创建,然后最后一个在3日创建的事件将被推迟到1月4日。

然后,如果我点击并选择1月6日,事件将在6日正确创建,但最后一个事件,即15日将被推到16日。。。请帮助

我认为你的问题是一个简单的javascript问题:也就是说,因为日期是对象,在javascript中是通过引用传递的,所以你的所有事件都指向变量"start"所指向的日期,所以当你通过变量"start'"更改该日期时,所有事件都会更改。修复方法是在分配日期之前克隆日期,如下所示:

...
title: title,
start: new Date(start.getTime()),
allDay: allDay,
...

我自己还没有测试过,但我很确定它会起作用。

相关内容

  • 没有找到相关文章

最新更新