我正在使用fullcalendar來呈現我的網站成員的事件。每個人都可以添加自己的活動每個事件都必須具有唯一的ID,我在PHP中使用了SELECT INCREMENT(MAX('id'))。然後適當的var傳遞給JavaScript,這是一個問題。在添加新事件的第二次嘗試中,該數字會被提供給fullcalendar renderEvent函數。首先點擊日曆,變量是空的聲明(在名爲newEventId的變量中)。
這裏是我的代碼:
function showCalendar() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var newEventId = '';
$('#kalendarz').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month'
},
editable: false,
dayClick: function(e)
{
$.getJSON('/ajax/call/bands/AddEvent', function(data) {
newEventId = data.dane;
});
console.log(newEventId); // <- empty, then with ID at second click...
$("#kalendarz").fullCalendar('renderEvent',
{
title: 'Termin zajęty',
start: e,
id: newEventId
});
},
});
}
問題是什麼? renderEvent函數沒有等待getJSON完成作業?我能解決它嗎?
$ .getJSON是AJAX,AJAX是異步的! –
解決方法是重構您的腳本以允許Ajax調用的異步性質。無論你在'$ .getJSON()'應該在'$ .getJSON()'回調函數中調用哪一個函數。 – nnnnnn