Событие FullCalendar дублируется после первого события - PullRequest
0 голосов
/ 14 ноября 2018

когда я выбираю событие, все в порядке, после того, как меня дублируют, увеличивают в четыре раза и т. Д. Почему?Я не понимаю, почему это

Это мой код в 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');

                    }
                });
            });
        },
});

, когда я выбираю событие, все в порядке, после того, как меня дублируют, увеличивают в четыре раза и т. Д. Почему?Я не понимаю, почему это

1 Ответ

0 голосов
/ 14 ноября 2018

Проблема в том, что вы продолжаете добавлять все больше и больше обработчиков событий «click» к кнопке «save» каждый раз, когда запускается обратный вызов «select».

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

должен исправить вашу проблему ( .off () удаляет указанные обработчики событий из элемента).

Вопросы такого рода задаются постоянно. Вы должны понимать, что добавление обработчика событий к элементу не удаляет предыдущие, они все могут существовать вместе, и все они будут продолжать реагировать на события, пока вы не удалите их.

...