2015-12-21 72 views
0

我正在使用Fullcalendar。我現在通過拖放來創建活動。我想在一天中雙擊一下。我正在嘗試使用dayRendar函數,但「event.start.format()」未定義。任何人都可以檢查我的代碼,我錯了什麼?由於Fullcalender dayRender

dayRender: function(event, element) { 
      element.bind('dblclick', function(event,element) { 
        var title = prompt('Event Title:', event.title, { buttons: { Ok: true, Cancel: false} }); 
         if (title){ 
         console.log(event); 
          event.title = title; 
          var start = event.start.format("YYYY-MM-DD[T]HH:MM:SS"); 
          $.ajax({ 
           url: '{!!URL::route("saveCalendarEvent")!!}', 
           data: 'type=new&title='+title+'&startdate='+start+'&zone='+zone, 
           type: 'POST', 
           dataType: 'json', 
           success: function(response){  
           event.id = response.eventid; 
           $('#calendar').fullCalendar('updateEvent',event); 
           }, 
           error: function(e){ 
            alert('Error processing your request: '+e.responseText); 
           } 
          }); 
         } 

      }); 
     } 

錯誤:

Uncaught TypeError: Cannot read property 'format' of undefined 

回答

0

的的DayRender參數是日期和細胞,而不是事件和元素:

按照FullCalendar Docs爲的DayRender:

function(date, cell) { } 

所以問題是,你的'元素'變量實際上是一個日期,所以'event.start'沒有存在因此拋出一個錯誤,當你打電話'event.start.format'

+0

那麼我現在應該做什麼scottysmalls? –

+0

首先更改功能參數。然後在你的ajax中使用你提示中的標題作爲dayRender回調中的標題和'date'。 (類似於var start = date.format(「YYYY-MM-DD [T] HH:MM:SS」); – scottysmalls