【问题标题】:FullCalendar dayClick functionalityFullCalendar dayClick 功能
【发布时间】:2010-08-03 00:40:36
【问题描述】:

我对 FullCalendar 还很陌生,但我非常喜欢它的功能。 我正在尝试使用 dayClick 函数。也许有人可以指引我正确的方向。

我目前有这个:

dayClick: function (date, allDay, jsEvent, view) {
            var titleNew = prompt('Event Title:');
            var thedate1 = formatDate(date);
            
            $.ajax({
                url: "classes/class.Post.php?a=dayClickCalendarEvent",
                dataType: 'json',
                data: { 
                      title: titleNew,
                      start: thedate1,
                      end: thedate1
                },
                success: function (data, response, event, date) {

                    $('#calendar').fullCalendar('renderEvent', titleNew);
                },
                error: function () {
                    alert("Oops! Something didn't work");
                }
            });
        },

我的问题是无论如何我都无法将事件渲染到日历中。 我错过了什么吗?我正在使用calEvent,我在另一个 Stack Overflow 帖子中找到了它。

这是我的格式代码:

function formatDate(date1) {
   return date1.getFullYear() +'-'
         + (date1.getMonth() < 9 ? '0' : '')
         + (date1.getMonth()+1) +'-'
         + (date1.getDate() < 10 ? '0' : '') 
         + date1.getDate() +' '
         + (date1.getHours() < 10 ? '0' : '')
         + date1.getHours() +':'
         + (date1.getMinutes() < 10 ? '0' : '')
         + date1.getMinutes();
 } 

任何帮助将不胜感激。

【问题讨论】:

  • 我认为 formatDate 可能未定义。你在范围内吗?我认为您可能需要使用 $.fullCalendar.formatDate。
  • 我的格式不会影响任何其他事件,这很奇怪。这是我的格式代码。 function formatDate(date1) { return date1.getFullYear() +'-'+ (date1.getMonth()

标签: jquery fullcalendar jquery-events


【解决方案1】:

嘿,感谢您的回复,我能够使用此代码,并且响应非常好!

     dayClick: function (date, allDay, jsEvent, view) {
           titleNew = prompt('Event Title:');
           var thedate1 = formatDate(date);

            $.ajax({
                url: "classes/class.Post.php?a=dayClickCalendarEvent",
                dataType: 'json',
                data: { 
                      title: titleNew,
                      start: thedate1,
                      end: thedate1
                },
                success: function (data, response, event, date) {
                    //alert("success here");
                    $('#calendar').fullCalendar('renderEvent',
                    {
                        title: titleNew,
                        start: thedate1,
                        end: thedate1
                    }, true);
                },
                error: function () {
                    alert("Oops! Something didn't work");
                }
            });
        },

【讨论】:

  • 你知道thedate1 可以只是一个日期对象(例如thedate1 = new Date();。但我很高兴你能正常工作。
  • 可能是的,但是您仍然需要格式化日期,我使用自定义函数将其格式化为一个有能力的 MySQL 特定日期(即:2010-08-02 23:30)。除非我错过了什么?
  • 你是怎么解决这个问题的,我经常有 $("#calendar").fullcalendar 不是函数
【解决方案2】:

我认为问题出在这句话$('#calendar').fullCalendar('renderEvent', titleNew);

titleNew 是一个字符串,renderEvent 函数接受一个 calEvent 对象。

来自 FullCalendar 文档:

event 必须是一个带有标题的事件对象,并且至少开始。 通常,一旦日历重新获取其事件源(例如:单击上一个/下一个时),该事件就会消失。但是,将 stick 指定为 true 会导致该事件永久固定在日历中。

我很好奇您为什么要使用 Ajax 调用,但您似乎没有用它做任何事情。

【讨论】:

  • 如果我使用类似 $('#calendar').fullCalendar('renderEvent', event, stick);它仍然会导致问题。在我更新事件时使用的其他代码中: $('#calendar').fullCalendar('updateEvent', event, stick);而且效果很好。但只有当我添加它似乎不想添加。在 AJAX 调用中,我使用它来将其添加到 URL 下的数据库中,该 URL 使用我的数据变量调用 switch 语句。这是一种不好的做法吗?
  • 我确定你已经检查过了,但是 'success' 事件会被触发吗?你有没有试过在里面放一个警报?你从服务器得到什么?我看到您正在调用 json,但您没有使用它。另外 - 签名对我来说似乎是错误的,它应该是成功(数据、文本状态、XMLHttpRequest)。我不知道“日期”成员是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
相关资源
最近更新 更多