jquery - When adding events to FullCalendar they are duplicated - multiple calls made to add event without cause -


i using fullcallendar , jquery. made google calendar interface , pull events json file. when user clicks on day div opens them enter info click add event , event added. on second click when user clicks add event 2 events added, 1 on first clicked day , second on selected day. on third click 3 events added , on. here code: var c = 0;

function cleaneventbubble(){     $('#event').hide();     $('td').removeclass('selday');     $('#eventdate').text('');     $('#calevent,input:text').val(''); }  function createevent(date, allday, jsevent, view, selcell){     //clean event bubble , calendar     cleaneventbubble();     $(selcell).addclass('selday');     $('#eventdate').append(date.todatestring());     $('#event').css('left', jsevent.pagex);     $('#event').css('top', jsevent.pagey);     $('#event').show();      $('#btnaddevent').click(function(){addevent(date, $('#title').val(), c)}); }  function addevent(date, title, id){     $.ajax({             type:'get',     <cfoutput>url:  '#strurl#'</cfoutput>,             data:{                 method:'addevent',                 user:1,                 title:title,                 allday:'true',                 start:$.fullcalendar.formatdate( date, 'yyyy-mm-dd' )                 },             datatype:   'json',             success: function(data, status){alert('response: ' + data);},             error: function(data){$('#returnmess').html(data);}      });     $('#calendar').fullcalendar( 'refetchevents' )     cleaneventbubble(); }  /**/ function removeevent(id){     $('#calendar').fullcalendar('removeevents', id); }  function updateevent(id, title){     var event = $('#calendar').fullcalendar('clientevents', id);     event.title = title;     $('#calendar').fullcalendar('updateevent', event); }   $(document).ready(function() {     //create jquery connection obj     $('#event').hide();     //make event bubble draggable     $('#event').draggable();      $('#evbubbleclose').click(cleaneventbubble);     // page ready, initialize calendar...     $('#calendar').fullcalendar({         // put options , callbacks here date, allday, jsevent, view         dayclick:function(date, allday, jsevent, view){            createevent(date, allday, jsevent, view, this);         },         <cfoutput>events: '#strurl#'+'?wsdl&method=getevents'</cfoutput> ,         theme: true,         header: {left: 'prev,next today', center: 'title', right: 'month,agendaweek,agendaday' },          editable:true     });      //$('#calendar').fullcalendar('renderevents');  }); 

ok, here's solution without boolean flags :)

instead of $(this).remove();

use

$('#calendar').fullcalendar( 'removeevents', event.id ); 

see documentation


Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -