Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

460
Vistas
How to remove event from FullCalendar by clicking on Cross button?

I wanted to create Full Calendar. FullCalendar is in modal when website opens in phone. So I created Two div tag and hiding one tag depending on phone screen.

Once User select on full Calendar, Event will be added.

longPressDelay: 1,
selectAllow: function(selectInfo){
      return true;
 },
selectOverlap: function(event) {
    return true;
 },
select: function(info){
          var myid = makeid(8); // create random string
          calendar.addEvent({
            title: "test",
            start: info.startStr + "+09:00",
            end: info.endStr + "+09:00",
            editable: true,
            color: "#0000FF",
            id: myid,
          });
        },

Now To add, cross button on each event I used EventDidMount and I wanted to add cross button when event background color is #0000FF.

Once Cross button is added, I used onClick event to remove event.

eventDidMount: function(event){
          var v = event.event;
          if(event.backgroundColor === "#0000FF"){
            var myid = v.id;
            var v = event.el;
            let find = v.querySelector('.fc-event-main-frame');
            let myhtml = `<i class="fa fa-times float-right" aria-hidden="true"></i>`;
            let mydiv = document.createElement('div');
            mydiv.className = 'close-event float-right';
            mydiv.innerHTML = myhtml;
            find.insertBefore(mydiv,find.firstChild);
            mydiv.onclick = function(){
              console.log("cross clicked");
              myevent = calendar.getEventById(myid);
              myevent.remove();
            }
          }
        },

Removing event is working perfectly on PC screen size but when I am switching to SP screen, Cross button is not getting removed. So On PC screen size, cross clicked is in console on clicking cross but on SP screen size onClick event is not firing. I can not see any problem in code, How can I fix it?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

$(document).ready(function() {
  $("#calendar").fullCalendar({
    header: {
      left: "prev,next today",
      center: "title",
      right: "month,agendaWeek,agendaDay"
    },
    defaultView: "month",
    navLinks: true, // can click day/week names to navigate views
    selectable: true,
    selectHelper: false,
    editable: true,
    eventLimit: true, // allow "more" link when too many events

    select: function(start, end) {
      var title = prompt("Event Content:");
      var eventData;
      if (title) {
        eventData = {
          title: title,
          start: start,
          end: end,
          color: $("#colorPicker").val()
        };
        $("#calendar").fullCalendar("renderEvent", eventData, true); // stick? = true
      }
      $("#calendar").fullCalendar("unselect");
    },

    eventRender: function(event, element) {
      element
        .find(".fc-content")
        .prepend("<span class='closeBtn material-icons'>&#xe5cd;</span>");
      element.find(".closeBtn").on("click", function() {
        $("#calendar").fullCalendar("removeEvents", event._id);
      });  
    },

    eventClick: function(calEvent) {
      var title = prompt("Edit Event Content:", calEvent.title);
      calEvent.title = title;
      $("#calendar").fullCalendar("updateEvent", calEvent);
      
    },    
  });
});
body {
  margin: 40px 10px;
  padding: 0;
  font-family: "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
  font-size: 14px;
}

#calendar {
  max-width: 900px;
  margin: 0 auto;
}

#wrap {
  width: 1100px;
  margin: 0 auto;
}

.closeBtn {
  border-radius: 5px;
}
<html>
<head>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.min.css">
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.min.js"></script>

</head>

<body>
<div id='calendar'></div>

<span><input type='color' id='colorPicker'></span>
</body>

</html>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda