2013-02-03 84 views
1

我想刪除事件後直接將其添加到full calender,當刪除事件我添加到事件對象的id和當我點擊事件我想刪除事件。我警告了這個ID,它會正確提醒,但事件不會刪除事件,並執行ajax代碼並從服務器端刪除該事件。將事件直接添加到fullCalender後刪除事件

當添加事件並刷新頁面然後刪除事件時,相同的代碼正常工作。

eventClick: function(event, element) { 

      var current = $(this); 

      if(confirm('Are you sure from removing the event?')){ 
       jQuery.ajax({ 
        url: url+"delCalEvent", 
        type: "POST", 
        dataType: 'JSON', 
        data:{ 
         'eventId':event.id 
        }, 
        success:function(result){ 
         if(result == "1"){ 

         //what should I do here to remove the event without refreshing the page 
         $('#calendar').fullCalendar('removeEvents', event.id); 


         } 

        }, 
        error: function (request, status, error) { 
         alert('Error on deleting the event '); 
         revertFunc(); 
        } 
       }); 


      } 

     } 
+0

你試圖重新描繪日曆:$( '#日曆')fullCalendar( 「rerenderEvents」);? –

+0

'removeEvents'應該像你一樣工作,不需要'rerenderEvents' ......你確定你從服務器獲得'result == 1'嗎? – MaxD

+1

@ axel.michel,是的我試圖「rerenderEvents」和「renderEvents」事件,但沒有迴應 – palAlaa

回答

2

它應該工作。但是,也許是fullcalendar沒有得到正確的參考..嘗試使用下面的方法之一來獲取對象的引用:

// get specif event (reference) 
var specificEvent = $('#calendar').fullCalendar('clientEvents', event.id); 

// get last event added (reference) 
var clientEvents = $('#calendar').fullCalendar('clientEvents'); 
var lastEvent = clientEvents[clientEvents.length-1]; 

然後嘗試使用下列方法之一將其刪除:

lastEvent.id = ''; 
lastEvent.start = ''; 
lastEvent.end = ''; 
$('#calendar').fullCalendar('updateEvent', lastEvent); 

$('#calendar').fullCalendar('removeEvents', lastEvent); 
+0

它適用於創建空事件和「updateEvent」,但請請刪除this,因爲它會導致錯誤。 – palAlaa

+0

是的,我錯誤地複製了'this'這個詞..已經刪除它,tnks –