Я JS Noob. Я использую плагин jquery FullCalendar, который предоставляет событие eventClick (calEvent, jsEvent, view), которое вызывается при нажатии на событие в календаре. В моем обработчике событий я хочу открыть диалоговое окно с вопросом, хочет ли пользователь редактировать только одно вхождение повторяющегося события или всего события. Проблема заключается в том, что обработчики нажатий кнопок для диалогового окна THAT должны иметь доступ к переменной calEvent, но я должен создать экземпляр диалога внутри $ (document) .ready, но за пределами функции eventClick.
Вот мой код:
$(document).ready(function() {
$('#calendar').fullCalendar({
events: getEvents,
header: {
left: 'title',
center: 'prev,next',
right: 'today month agendaWeek agendaDay'
},
theme: true,
eventClick: function(calEvent, jsEvent, view) {
if(calEvent.readOnly == true) {
return;
}
if(calEvent.recurring) {
if(calEvent.persisted) {
editOccurrence(calEvent);
} else {
$("#edit_type_dialog").dialog("open");
}
} else {
editEvent(calEvent);
}
}
});
$("#edit_type_dialog").dialog({
modal:true,
autoOpen: false,
buttons: {
All:function() {
$(this).dialog("close");
editEvent(calEvent);
},
This:function() {
$(this).dialog("close");
editOccurrence(calEvent);
},
Cancel:function() {
$(this).dialog("close");
}
}
});
function getEvents(start, end, callback) {
//get some events
}
function editEvent(calEvent) {
alert("event edited");
}
function editOccurrence(calEvent) {
alert("occurrence edited");
}
});
Итак, вопрос сводится к следующему: как передать calEvent обработчикам событий нажатия кнопки в edit_type_dialog из функции eventClick?