当我选择一个事件时,它是可以的,在我得到重复、四倍等之后。为什么?我不知道为什么是
这是我在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((从元素中删除指定的事件处理程序(。
这种性质的问题总是被问到。您需要明白,向元素中添加事件处理程序不会删除以前的事件处理程序,它们可以一起存在,并且在您删除它们之前,它们都将继续响应事件。