javascript Fullcalendar,在尝试编辑事件时,它始终会编辑我点击的第一个,

时间:2017-03-08 11:20:58

标签: javascript jquery events double fullcalendar

我对fullcalendar有这个问题,当我编辑一个事件时,一切都工作正常,但如果我尝试编辑另一个事件,我编辑的第一个事件总是得到修改。

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');

        };
    });

我已多次阅读文档,但我无法弄清楚这一点,为什么我点击的第一个事件保持选中状态? 我正在使用.fullcalendar('unselect')方法。 添加功能正常 调整大小工作确定无论我尝试多少次都无关紧要 从1个日期到其他日期的更改工作正常 删除我可以删除1个或多个事件,这里没问题。

但我只能编辑1个事件。

1 个答案:

答案 0 :(得分:0)

我发现了错误,这是它的代码。我应该把ajax放在对话框按钮功能中。

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');

      },