Возврат из event.Click, event.Resize и eventDrop приводит к тому, что NaN появляется везде при переходе на другое представление или страницу календаря. - PullRequest
0 голосов
/ 18 ноября 2010

Я использую PHP для работы с JQuery и Javascript и интегрирую fullcalendar.

Я с удовольствием смотрю календарь с событиями в течение месяцев и недель.Я также с удовольствием создаю и редактирую события в fullcalendar, используя event.Click, event.Resize и eventDrop.

Однако, когда я возвращаюсь из редактирования, а затем пытаюсь изменить месяц / неделю и т. Д., Я просто получаю NaN везде, где я ожидаю увидеть дни и так далее.Обновление выполняется для наложенного div, содержащего iframe.Скрипт в iframe вызывает функцию javascript для закрытия div и обновляет календарь с помощью reFetchEvents.Исходная страница отображается нормально, но при переходе к другой части календаря я вижу описанный эффект.

Соответствующий фрагмент из сценария отображения календаря

function close_upd(){  
/* called by update script in iframe after user hits submit/cancel */  
    $("#update").dialog('close');  
    $("#calendar").fullCalendar('refetchEvents');  
}  
$(document).ready(function(){  
    $('#calendar').fullCalendar({  
        theme: true,  
        defaultView: '<?=$view;?>',  
        firstHour: 8,  
        header: {  
            left: 'prev,next today',  
        center: 'title',  
         right: 'month,agendaWeek,agendaDay'
      },
      selectable: true,  
      selectHelper: true,  
      select: function(startdate, enddate, allDay, jsEvent, view) {  
         window.scrollTo(0,0);  
         var sd = Date.parse(startdate);  
         var ed = Date.parse(enddate);  
         $("#update").html("CALLS IFRAME");  
         $("#update").dialog('open');  
      },  
      editable: true,  
      eventClick: function(calEvent, jsEvent, view) {  
         window.scrollTo(0,0);  
         var sd = Date.parse(calEvent.start);  
         var ed = Date.parse(calEvent.end);  
         $("#update").html("CALLS IFRAME");  
         $("#update").dialog('open');  
      },  
      eventResize: function(calEvent,dayDelta,minuteDelta,revetFunc) {  
         var sd = Date.parse(calEvent.start);  
         var ed = Date.parse(calEvent.end);  
         $.post('./event_update2.php',{'allday':'false', 'event':calEvent.id, 'start':sd,'end':ed}, function(response){  
            if(response.length > 0){  
               alert(response);  
               revertFunc();  
            }  
         });  
      },  
      eventDrop: function(calEvent,dayDelta,minuteDelta,allDay,revetFunc) {  
         var sd = Date.parse(calEvent.start);  
         var ed = Date.parse(calEvent.end);  
         $.post('./event_update2.php',{'allday':allDay, 'event':calEvent.id, 'start':sd, 'end':ed}, function(response){  
            if(response.length > 0){  
               alert(response);  
               revertFunc();  
            }  
         });  
      },  
      eventMouseover: function( event, jsEvent, view ) {  
         var showdatea = $.fullCalendar.formatDate(event.start,"dS MMM yyyy");  
         var showdateb = $.fullCalendar.formatDate(event.start,"hh:mm");  
         showToolTip(jsEvent,event.title+" "+showdatea+" Starts At "+showdateb+" "+event.desc);  
      },  
      eventMouseout: function( event, jsEvent, view ) {  
         hideToolTip();  
      },  
      events: './event_find.php?from=PP'  
   });  
});  

1 Ответ

0 голосов
/ 28 ноября 2010

Что Firebug говорит вам?Все правильно выбирается с сервера?Сначала представьте календарь в первый раз, когда вы сможете проверить, что было возвращено в GET event_find.php?from=PP.Итак, во второй раз, после закрытия оверлея редактирования, сервер отвечает такими же данными GET (плюс новое изменение редактирования)?

После этого, когда вы нажимаете prev / next, теперь он загружает разные данные в GET?

Знание этого станет хорошим началом для понимания того, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...