FullCalendar事件在第一个偶数之后重复



当我选择一个事件时,它是可以的,在我得到重复、四倍等之后。为什么?我不知道为什么是

这是我在javascript 中的代码

    $('#calendar').fullCalendar({
        snapDuration: '00:30:00',
        selectable: true,
        aspectRatio: 1.8,
        scrollTime: '08:00', // undo default 6am scrollTime
        resources: '{!! route('fullcalendar.roomall') !!}',
        events: '{!! route('fullcalendar.bookingall') !!}',
        select: function( start, end, jsEvent, view, resourceId) {
            $('#event-modal').find('input[name=title]').val('');
            // set values in inputs
            $('#event-modal').find('input[name=evtStart]').val(
                    start.format('YYYY-MM-DD HH:mm:ss')
            );
            $('#event-modal').find('input[name=evtEnd]').val(
                    end.format('YYYY-MM-DD HH:mm:ss')
            );
            // show modal dialog
            $('#event-modal').modal('show');
            /*
             bind event submit. Will perform a ajax call in order to save the event to the database.
             When save is successful, close modal dialog and refresh fullcalendar.
             */
            $("#event-modal").on('click','.save', function(event) {
                event.preventDefault();
                var id = resourceId['id'];
                var roomName = resourceId['title'];
                var title = $('#title').val();
                var start = $('#evtStart').val();
                var end = $('#evtEnd').val();
                $('#event-modal').modal('hide');
                $.ajax({
                    url: '{{ route('events.save') }}',
                    data: $("#event-modal").serialize(),
                    type: 'post',
                    dataType: 'json',
                    data: {
                        '_token': $('input[name=_token]').val(),
                        'title': title,
                        'start': start,
                        'end': end,
                        'roomId': id,
                        'roomName': roomName
                    },
                    success: function(response) {
                        callback(response);
                        $("#calendar").fullCalendar( 'refetchEvents');
                    }
                });
            });
        },
});

当我选择一个事件时,它是可以的,在我得到复制、四倍等之后。为什么?我不知道为什么是

问题在于,每次运行"select"回调时,都会不断向"save"按钮添加越来越多的"click"事件处理程序。

$("#event-modal").off("click", ".save").on('click','.save', function(event) {

应该修复您的问题(.of((从元素中删除指定的事件处理程序(。

这种性质的问题总是被问到。您需要明白,向元素中添加事件处理程序不会删除以前的事件处理程序,它们可以一起存在,并且在您删除它们之前,它们都将继续响应事件。

最新更新