Fullcalendar中的updateEvents

Fullcalendar中的updateEvents,fullcalendar,Fullcalendar,我正在使用Fullcalendar打印日历中的事件。我的问题是,我不知道Fullcalendar是否允许您在打印事件数据后编辑它。我一直在阅读文档和updateEvent(方法)一节,但我复制了其中的内容,根本不起作用。我不知道我是否错过了什么。如果有人用过Fullcalendar,我会感谢你的帮助 function drawControl(controls) { console.log(controls[0]) $('#calendar')

我正在使用Fullcalendar打印日历中的事件。我的问题是,我不知道Fullcalendar是否允许您在打印事件数据后编辑它。我一直在阅读文档和updateEvent(方法)一节,但我复制了其中的内容,根本不起作用。我不知道我是否错过了什么。如果有人用过Fullcalendar,我会感谢你的帮助

  function drawControl(controls) {
            console.log(controls[0])

            $('#calendar').fullCalendar({
                editable: true,
                aspectRatio: 1,
                contentHeight: 500,
                scrollTime: '24:00:00',
                minTime: '01:00:00',
                maxTime: '24:00:00',
                defaultView: 'agendaWeek',
                header:{left:"prev,next,today",
                center:"title",
                right:"month, agendaWeek, agendaDay"},



                events: allControls(controls),

                eventRender: function(event, element) {

                    var bloodLevel=event.title

                    if(bloodLevel >= 180) {
                        element.css('background-color', 'red');
                    }
                    else if(bloodLevel < 70) {
                        element.css('background-color', 'yellow');
                    }
                },
                eventClick: function(event, element) {


                $('#calendar').fullCalendar('updateEvent', event);

    }
                //
        // put your options and callbacks here
    })

    }

});
功能绘图控件(控件){
console.log(控件[0])
$(“#日历”).fullCalendar({
是的,
方面:1,
身高:500,
滚动时间:“24:00:00”,
minTime:'01:00:00',
maxTime:'24:00:00',
defaultView:'agendaWeek',
标题:{左:“上一个,下一个,今天”,
中心:“标题”,
右:“月,agendaWeek,agendaDay”},
事件:所有控件(控件),
eventRender:函数(事件,元素){
var bloodLevel=event.title
如果(血级>=180){
css('background-color','red');
}
否则,如果(血量<70){
css('background-color','yellow');
}
},
事件单击:函数(事件、元素){
$(“#日历”).fullCalendar('updateEvent',event);
}
//
//把你的选择和回电放在这里
})
}
});
有两个选项:

  • 使用
    加载
  • 使用
    eventAfterAllRender
  • Bt使用
    eventAfterAllRender
    ,这是在所有事件从源代码在完整日历中完成渲染后触发的

    eventAfterAllRender: function( view ) {
        var allevents = $('#calendar').fullCalendar('clientEvents');
        var count = allevents.length;
        - - -
        - - -
    }
    
    现在,使用
    allevents
    数组执行所需的操作。
    使用循环获取事件的属性。

    在调用.fullCalendar('updateEvent',event')之前,尝试将event.backgroundColor属性与元素.css()一起设置

    例如:

    if(bloodLevel >= 180) {
        element.css('background-color', 'red');
        event.backgroundColor = 'red';
    }
    else if(bloodLevel < 70) {
        element.css('background-color', 'yellow');
        event.backgroundColor = 'yellow';
    }
    
    如果(血级>=180){
    css('background-color','red');
    event.backgroundColor='红色';
    }
    否则,如果(血量<70){
    css('background-color','yellow');
    event.backgroundColor='黄色';
    }
    
    Hola David,你能提供你的一段代码或你遇到的错误吗?什么失败了?控制台有错误吗?没有错误。eventClick根本不起作用。我希望事件允许我编辑它们并更改它们的数据。在该代码中,单击时您不会更改事件。在调用updateEvent()之前,应该更改其任何属性。只需尝试使用eventClick:function(event,element){event.title=“Clicked”;$(“#calendar”).fullCalendar('updateEvent',event);}但问题是,每个事件都是通过表单创建的,所以我不知道如何在单击它们时更改它们的标题或开始。我不想我的事件标题被“点击”我知道你不想“点击”你的事件,这只是出于测试目的。如果您有一个表单来创建它们,那么当您单击事件时,您应该加载一个表单来更新它们,使用从event.id中的回调接收到的id。然后,在表单中可以设置一个Save按钮来调用updateEvent()。你能给我一点解释吗。。。谢谢,“property”和“something”可以是事件对象的任何属性。这里,我们基本上只是在事件对象数组中循环,使用and if语句检查属性值,并确定是否需要编辑/更改事件的数据。问题:在你的原始帖子中,你想“编辑事件的数据”。您是在谈论编辑eventObject的数据还是更新屏幕上显示的UI视图?我想要的是更新事件的数据。我的意思是,如果我点击一个事件,它会将我重定向到Rails中的表单,在那里我可以更改对象的属性(:level,:day,:period)。
    if(bloodLevel >= 180) {
        element.css('background-color', 'red');
        event.backgroundColor = 'red';
    }
    else if(bloodLevel < 70) {
        element.css('background-color', 'yellow');
        event.backgroundColor = 'yellow';
    }