2013-02-12 35 views
7

Tôi vừa mới bắt đầu sử dụng plugin này và tôi đang gặp một số sự cố khi xóa sự kiện mà tôi vừa tạo. Tôi có thể xóa tất cả các sự kiện khi sử dụng eventClick, nhưng không thể xóa các sự kiện cụ thể trên eventClick.Xóa các sự kiện cụ thể bằng phương thức removeEvents

Mọi trợ giúp sẽ được đánh giá cao. Đây là mã của tôi.

<script type='text/javascript'> 

$(document).ready(function() { 

    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 

    var calendar = $('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     selectable: true, 
     selectHelper: true, 
     select: function(start, end, allDay) { 
      var title = prompt('Trade Show Name:'); 
      if (title) { 
       calendar.fullCalendar('renderEvent', 
        { 
         title: title, 
         start: start, 
         end: end, 
         allDay: allDay, 
         id: 12 
        }, 
        true // make the event "stick" 
       ); 
      $('input[name="startDate"]').val(start); 
      } 
      calendar.fullCalendar('unselect'); 
     }, 
     eventClick: function(calEvent, jsEvent, view) { 
      $('#calendar').fullCalendar('removeEvents', function (calEvent) { 
       return true; 
      });, 
     editable: true 
    }); 

}); 
+0

Bạn đã đọc điều này: http://arshaw.com/fullcalendar/docs/event_data/removeEvents/ – j08691

+0

Vâng tôi đã làm. Tôi chỉ không chắc chắn những gì id để đi vào chức năng của tôi. – wowzuzz

+0

Dường như ID sự kiện hoặc chức năng. – j08691

Trả lời

24

Bạn có thể làm điều này trong 2 cách sau:

1) Thiết lập một ID duy nhất cho mỗi sự kiện của bạn và vượt qua những ID cho removeEvents gọi.

eventClick: function (calEvent, jsEvent, view) {   
    $('#calendar').fullCalendar('removeEvents', calEvent._id); 
} 

Ở đây _id là ID duy nhất fullCalendar tạo ra.

2) Vượt qua chức năng lọc để xóa sự kiện bạn muốn.

Xem xét rằng bạn đang cố thực hiện điều này trong eventClick, tôi khuyên bạn nên sử dụng số 2. Một ví dụ cho trường hợp của bạn như sau:

eventClick: function (calEvent, jsEvent, view) { 
    $('#calendar').fullCalendar('removeEvents', function (calEvent) { 
     return true; 
    }); 
} 

Đây là chức năng lọc thông qua với removeEvents chấp nhận trường hợp bạn muốn xóa và trả về true. Vì bạn đang làm điều này trong eventClick, tất cả những gì bạn phải làm là vượt qua calEvent.

Hy vọng điều này sẽ hữu ích!

+1

Mã này vẫn không hoạt động. Chỉnh sửa ở trên. Nó đang xóa tất cả các sự kiện kể từ bây giờ. – wowzuzz

+1

Vâng, vâng - bởi vì bộ lọc trả về true cho tất cả các sự kiện. Bạn sẽ phải đặt trong một điều kiện xác định duy nhất sự kiện bạn muốn xóa và trả về true chỉ trong trường hợp đó. Nếu bạn muốn làm việc với mã của bạn như là, hãy đi với tùy chọn 1 (Tôi đã cập nhật với một ví dụ) – ganeshk

+0

Ahh Tôi không biết id duy nhất được tạo ra là _id. Cảm ơn bạn rất nhiều vì sự giúp đỡ và giải thích của bạn. :) – wowzuzz

Các vấn đề liên quan