Fullcalendar js事件重叠



我使用fullcalendar js jquery插件,这是一个伟大的插件,但我有一个小问题,你知道如何:

我有一个总是不重叠的事件列表。然后有时我需要调整一个活动的时间,把它延长1到2个小时。真正的步骤是在这里,我试图使下一个事件不是重叠,而是根据调整大小的结束事件移动。我尝试过事件重叠自定义功能,但它并不真正起作用。这两个事件之间总是有几分钟的间隔。

我明天会送你一把小提琴,告诉你我在哪里。

/编辑/创建这个代码:

http://codepen.io/cchumi/pen/pEGLXd

Javascript示例:

eventOverlap: function(stillEvent, movingEvent) {           
//Update MovingEvent     
$('#calendar').fullCalendar('updateEvent', movingEvent);
//swap stillEvent time with movingEvent
  stillEvent.end = stillEvent.end;
  stillEvent.start = movingEvent.end;
//Update stillEvent
  $('#calendar').fullCalendar('updateEvent', stillEvent);
  //return true to allow swap.
  return true;
}

自从你的帖子以来已经有一段时间了,但我认为我为你找到了一个解决方案,我正在看你的代码并理解,在事件重叠事件重叠函数被触发的那一刻,所以我只是在你的代码之前添加一个事件监听器。mouseup()来停止你的代码的触发器,直到你释放鼠标的点击。现在它工作得很好。现在你的代码看起来像这样:

eventOverlap: function(stillEvent, movingEvent) {
    $('#calendar').mouseup(function() {
        var movingEventEnd = moment(movingEvent.end).utc().format();
        //"YYYY-MM-DDTHH:mm:ss"
        var StillStart  = moment(stillEvent.start).utc().format();
        var StillEnd = moment(stillEvent.end).utc().format();
        var duration = moment.duration(moment(StillEnd).diff(moment(StillStart)));
        var hoursbaseStillEvent = duration.asHours();
        console.log("Still Hours Base " + hoursbaseStillEvent);
        $('#calendar').fullCalendar('updateEvent', movingEvent);
        var movingEventNewEnd = moment(movingEvent.end).utc().format();
        var durationMovingEvent = 
moment.duration(moment(movingEventNewEnd).diff(moment(movingEventEnd)));

        var hoursMovingEvent = durationMovingEvent.asHours();
        console.log("hourss " + hoursMovingEvent);
        stillEvent.start = moment(movingEvent.end).utc().format();
        var StillEventStart = moment(stillEvent.start).utc().format();
        console.log("StillEventStart " + StillEventStart);
        var StillEventEnd = moment(stillEvent.end).utc().format();
        var Startdate = moment(StillEventStart).utc().format();
        console.log("Startdate " + moment(Startdate).utc().format());
        var Enddate = moment(StillEventEnd);
        var StillEventEndNew = moment(Startdate).add(hoursbaseStillEvent, 'hours');  
        console.log("StillEventEndNew " + moment(StillEventEndNew).utc().format());
        stillEvent.end = moment(StillEventEndNew).utc().format(); 
        $('#calendar').fullCalendar('updateEvent', stillEvent);
    });
    return true;
    //return stillEvent.allDay && movingEvent.allDay;
},

相关内容

  • 没有找到相关文章

最新更新