2017-03-08 2 views
0

Ich habe dieses Problem mit Vollkalender, wenn ich ein Ereignis bearbeiten alles funktioniert einwandfrei, aber wenn ich versuche, ein anderes Ereignis zu bearbeiten, die erste I bearbeite immer die Änderungen.Javascript Fullcalendar, beim Versuch, Ereignisse zu bearbeiten, es immer bearbeiten die erste, die ich geklickt habe,

eventClick: function(calEvent, jsEvent, view) { 
      var title = calEvent.title; 
      alert(calEvent.idcita); 
      var idcita = calEvent.idcita; 
      $("#titulo2").val(title); 
      $("#idCita").text(idcita); 
      $("#startTime").html(moment(calEvent.start).format('D MMM h:mm A')); 
      $("#endTime").html(moment(calEvent.end).format('D MMM h:mm A')); 
      $("#eventInfo").html(calEvent.description); 
      $("#eventContent").dialog({ modal: true, title: calEvent.title, width:350}); 


     $(".antosubmit2").on("click", function() { 
      var title = $("#titulo2").val(); 
      idcita = $("#idCita").text() 
     if (title) { 
       calEvent.title = title; 
       var startw = calEvent.start; 
       var endedw = calEvent.end; 
       started = moment(startw,'YYYY-MM-DD hh:mm A'); 
       ended = moment(endedw,'YYYY-MM-DD hh:mm A'); 
      $.ajax({ 
        url: '/calendar/mod_cita', 
        data: 'id='+idcita+'&title='+calEvent.title+'&start='+started.format('YYYY-MM-DD HH:MM:SS')+'&end='+ended.format('YYYY-MM-DD HH:MM:SS'), 
        type: 'POST', 
        dataType: 'json', 
        success: function(response){ 
         // event.id = response.eventid; 
         calEvent.idcita = response.id; 
         $('#calendar').fullCalendar('updateEvent',calEvent); 
         console.log('Se edito correctamente'); 
        }, 
        error: function(e){ 
        // console.log(e.responseText); 
        } 

        }); 
       alert('dentro de editar:'+idcita+'y el evento es:'+calEvent.idcita); // Here I get the correct id for the clicked event but always the same calEvent (clicked the first time) 

     $('#titulo2').val(''); 
      $('#calendar').fullCalendar('rerenderEvents') 
      $('#calendar').fullCalendar('refresh') 
     $('#calendar').fullCalendar('unselect'); 
     $("#eventContent").dialog('close'); 

     }; 
    }); 

ich die Dokumentation oft gelesen, aber ich kann nicht herausfinden, warum ist das erste Ereignis, das ich Aufenthalt geklickt als ausgewählt? Ich verwende die Methode .fullcalendar ('unselect'). Hinzufügen Funktion funktioniert ok Größenänderung funktioniert ok es spielt keine Rolle, wie oft ich versuche Droping von 1 Datum zu anderen Arbeiten ok OK Löschen Ich kann 1 oder mehrere Ereignisse löschen, kein Problem hier.

Aber ich kann nur 1 Ereignis bearbeiten.

Antwort

0

Ich habe den Fehler gefunden, und das ist der Code dafür. Ich hätte den Ajax innerhalb der Dialog-Button-Funktion platzieren sollen.

eventClick: function(calEvent, jsEvent, view) { 
      var title = calEvent.title; 
      var idcita = calEvent.idcita; 
      var origEvent = calEvent; 
      $("#titulo2").val(title); 
      $("#idCita").text(idcita); 
      $("#startTime").html(moment(calEvent.start).format('D MMM h:mm A')); 
      $("#endTime").html(moment(calEvent.end).format('D MMM h:mm A')); 
      $("#eventInfo").html(calEvent.description); 
      $("#eventContent").dialog({ 
       sutoOpen: false, 
       modal: true, 
       draggable: true, 
       title: calEvent.title, 
       width:350, 
      buttons: { 
    "Salvar": function() { 
     var title = $("#titulo2").val(); 
      idcita = $("#idCita").text() 
       calEvent.title = title; 
       var startw = calEvent.start; 
       var endedw = calEvent.end; 
       started = moment(startw,'YYYY-MM-DD hh:mm A'); 
       ended = moment(endedw,'YYYY-MM-DD hh:mm A'); 
      $.ajax({ 
        url: '/calendar/mod_cita', 
        data: 'id='+idcita+'&title='+calEvent.title+'&start='+started.format('YYYY-MM-DD HH:MM:SS')+'&end='+ended.format('YYYY-MM-DD HH:MM:SS'), 
        type: 'POST', 
        dataType: 'json', 
        success: function(response){ 
         // event.id = response.eventid; 
         calEvent.idcita = response.id; 
         $('#calendar').fullCalendar('updateEvent',calEvent); 
         console.log('Se edito correctamente'); 
        }, 
        error: function(e){ 
        // console.log(e.responseText); 
        } 

        }); 

     $('#titulo2').val(''); 
      $('#calendar').fullCalendar('rerenderEvents') 
      $('#calendar').fullCalendar('refresh') 
     $('#calendar').fullCalendar('unselect'); 
     //$("#eventContent").dialog('close'); 
     // $('.antoclose2').click(); 

     $(this).dialog("close"); 
    } 
} 
      }); 
      $("#eventContent").dialog('open'); 

     }, 
+0

Sie sollten Ihre Fragen bearbeiten, anstatt eine Antwort zu posten. –

+0

Entschuldigung, ich finde es selbst heraus, jetzt sollte ich die Frage richtig bearbeiten? – hugmax

Verwandte Themen