Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 完整日历显示问题加载事件和可选择性_Jquery_Fullcalendar_Gcal - Fatal编程技术网

Jquery 完整日历显示问题加载事件和可选择性

Jquery 完整日历显示问题加载事件和可选择性,jquery,fullcalendar,gcal,Jquery,Fullcalendar,Gcal,我试图实现的是使用Google日历加载事件,但只显示当月的日期以及没有计划事件的日期。然后单击这些可用日期以打开联系人表单 问题 当改变月份时,当事件从谷歌日历中加载时,会有一个抖动。是否有办法加载事件,然后每月显示;或者,有没有一种方法可以避免戴上面具(用蓝色突出显示)来完全掩盖这一天,并表明如果发生了事件,那就是让这一天不可见 除了其他月份的事件和天数不可见外,是否有办法使它们也不可单击?请注意,在蓝色框外单击也会显示模式 以下是我到目前为止得到的- JS 非常感谢您的帮助。谢谢。您可以使用

我试图实现的是使用Google日历加载事件,但只显示当月的日期以及没有计划事件的日期。然后单击这些可用日期以打开联系人表单

问题

  • 当改变月份时,当事件从谷歌日历中加载时,会有一个抖动。是否有办法加载事件,然后每月显示;或者,有没有一种方法可以避免戴上面具(用蓝色突出显示)来完全掩盖这一天,并表明如果发生了事件,那就是让这一天不可见

  • 除了其他月份的事件和天数不可见外,是否有办法使它们也不可单击?请注意,在蓝色框外单击也会显示模式

  • 以下是我到目前为止得到的-

    JS


    非常感谢您的帮助。谢谢。

    您可以使用以下方法检查事件的存在和事件:

    检索FullCalendar在内存中包含的事件

    如果有任何问题,请停止您的功能

    代码:

    您可以使用以下命令设置事件存在的样式:

    .fc-event-skin {
        border: 1px dotted red !important;
        background-color: transparent !important;
        color: black;    
    }
    

    演示:

    还有关于更好标题的建议吗?您所有的活动都是从谷歌日历中获取的?是的,所有活动都有一个谷歌日历。这似乎很有效。下一个月/上一个月的天数(灰色)是否也可以设置为不可读取。事件加载的颤振仍然存在。当用户提前几个月时,应用背景的事件是否可以与日历的其余部分同时加载,这样您就根本看不到事件日期的数量-@newbake您可以检查所选日期是否在当前月份,如果不退出该功能(当我可以提供示例时),谢谢!令我惊讶的是,在你的指导下,我成功地得到了一些有用的东西。请你看一下代码,看看是否有更好的方法来写这个?还有一个主要问题,单击“下一步/上一步”显示日期,然后消失;防止这种情况发生的方法是等待Google事件信息加载,然后同时渲染整个事件吗?@NewbCake代码,没关系!你可以接受答案;对于change month中的刷新/获取数据,我认为可以通过对插件进行更改来完成,但我必须检查它(可能很长),但目前它正在按要求工作,对吗?
    select: function (date, allDay) {
    
                var dayEvents = $('#calendar').fullCalendar('clientEvents', function (event) {
                    return event.start.setHours(0, 0, 0, 0) === date.setHours(0, 0, 0, 0);
                });
    
                if (dayEvents.length>0) return
    
                date = $.fullCalendar.formatDate(date, 'dddd dd MMMM yyyy');
    
                var mywhen = date;
    
                $('#createEventModal #apptAllDay').val(allDay);
                $('#createEventModal #when').text(mywhen);
                $('#createEventModal').modal('show');
            }
        });
    
    .fc-event-skin {
        border: 1px dotted red !important;
        background-color: transparent !important;
        color: black;    
    }