Добрый день, возникла трудность с событиями datepicker
При событии изменения месяца
onChangeMonthYear, я загружаю массив дат, чтобы отметить на календаре занятые дни, но массив не успевает загрузиться, событие
beforeShowDay происходит быстрее, как сделать так, чтобы при изменения месяца, сначала грузились даты, только потом происходило
beforeShowDay событие
var array = new Array();
function load_reservation(stock, year = null, month = null, callback){
$.post( "'.Url::to(['site/ajax-load-reservation']).'", { "stock": stock, "year": year, "month": month }, function( data ) {
if(data.result==1){
callback(data.array);
}
else callback(null);
}, "json");
}
$(".book").each(function(){
var id = $(this).attr("data-stock_id");
load_reservation(id, null, null, function(result){
array[id] = result;
console.log("Loaded dates for #"+ id +": "+array[id]);
});
});
$(".book").datepicker({
changeMonth: true,
changeYear: true,
minDate: 0,
language: "ru",
dateFormat: "yy-mm-dd",
onSelect: function (date) {
var id = $(this).attr("data-stock_id");
console.log("selected: "+id);
},
onChangeMonthYear: function (year, month, day) {
var id = $(this).attr("data-stock_id");
load_reservation(id, year, month, function(result){
array[id] = result;
console.log("Month changed ("+ month +"), dates for #"+ id +": "+array[id]);
});
},
beforeShowDay: function(date){
var id = $(this).attr("data-stock_id");
var string = jQuery.datepicker.formatDate("yy-mm-dd", date);
var res = [ array[id].indexOf(string) == -1 ];
console.log("Res: "+res);
return res;
}
});
Подскажите, где тут ошибка?