簡體   English   中英

FullCalendar:刪除按鈕點擊事件

[英]FullCalendar: remove events on button click

我正在嘗試從 FullCalendar 中刪除動態選擇的事件。

在此處輸入圖片說明

呈現此事件時,它還會顯示在表格中,每行末尾都有一個刪除按鈕。 在此處輸入圖片說明

我想要做的是當我點擊刪除按鈕時,它也會刪除日歷上的事件。 我可以從表中刪除行,但不能在日歷中刪除。

這是我選擇事件的代碼

var eventID = 0;
$('.calendar').fullCalendar({
    select: function(start, end, event, view, resource) {
            if(start.isBefore(moment())) {
                $('.calendar').fullCalendar('unselect');
                swal('Ooops!','You cannot select past date/time!','error')
            }else{
                $('#reserved_date').val(moment(start).format("YYYY-MM-DD"))
                $('#end_time').val(moment(end).format("hh:mm A"));
                $('#start_time').val(moment(start).format("hh:mm A"));
                $('#newScheduleModal').modal({
                    show : true,
                    backdrop: 'static',
                    keyboard: false
                });
                eventData = {
                    id: eventID +1,
                    title: 'Lesson Schedule',
                    start: start,
                    end: end,
                };
            }
            $(".fc-highlight").css("background", "red");

    },
    events: obj,
    eventRender:function( ev, element ) { 
        eventID++; 
        $('#sched_data').append('<tr class="tb-row">'+
            '<td>'+moment(ev.start).format('MMM. DD, YYYY')+'</td>'+
            '<td>'+moment(ev.start).format('hh:mm A')+'</td>'+
            '<td>'+moment(ev.end).format('hh:mm A')+'</td>'+
            '<td><button class="btn btn-danger btn-del btn-xs" data-id"'+ev._id+'"><i class="fa fa-times"></i></button></td></tr>'
        )
    },

})

這是將事件渲染到日歷的代碼

$('#btn-reserve').click(function(){
        $('.calendar').fullCalendar('renderEvent', eventData, true);

})

這是我刪除事件的代碼

  $('body').on('click','.btn-del',function(){
    $(this).closest('.tb-row').remove();
    $('.calendar').fullCalendar('removeEvents', $(this).data('id'));
  })

我已經做到了,

我的代碼:

$('body').on('click','.btn-del',function(){
    $(this).closest('.tb-row').remove();
    $('.calendar').fullCalendar('removeEvents', $(this).data('id'));
})

它應該是什么

$('body').on('click','.btn-del',function(){
    var del_btn = $(this);
    del_btn.closest('.tb-row').remove();

    $(".calendar").fullCalendar('removeEvents', function(event) {
        return event.id == del_btn.data('id');
    });
})

第二個參數應該是一個函數,而不僅僅是普通的 id。

如果您使用eventClick刪除事件,您可以嘗試這樣:

document.addEventListener('DOMContentLoaded', function () {
  var calendarEl = document.getElementById('calendar');

  var calendar = new FullCalendar.Calendar(calendarEl, /*OPTIONS*/);

  calendar.on('eventClick', function (info) {
    calendar.getEventById(info.event.id).remove();
  });

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM