Datepicker de jQuery beforeShowDay fonctionne seulement après le 1er clic

Je vais avoir un problème avec beforeShowDay.

Quand mon chargement de la page, le nombre de jours que j'ai dit de mettre en évidence ne sont pas mis en évidence jusqu'à ce que je clique sur un jour du calendrier. Aussi, si je clique sur le prochain mois de bouton et de revenir à l'original d'un mois, puis le "sélectionné" les jours sont mis en surbrillance comme prévu.

Donc, uniquement sur le premier tirage du calendrier ne les dates à ne pas mettre en évidence comme je l'ai programmé pour le faire. Cliquer dans le calendrier résout de lui-même.

Ai-je raté une option init? Veuillez voir mon exemple de code ci-dessous. Mon test de l'url est dans le répertoire protégé avec un user/pass de test/test. Regardez le mini-cal dans la colonne de droite en bas. Commutateur pour le mois prochain et en arrière pour voir mon problème. Note le en surbrillance jours im Mai. Il est également à noter que l'année de la liste déroulante est également absente jusqu'à ce qu'un clic se produise.

http://www.urbanbands.com/dev/cgi-bin/links/eventmgr.cgi?do=list

Le code:

  <script>
$(document).ready(function(){
//get the current date
var today = new Date();
var m = today.getMonth(), d = today.getDate(), y = today.getFullYear();
//Need list of event dates for THIS month only from database.
//Declare 'dates' var before adding "beforeShowDay" option to the datepicker,
//otherwise, highlightDays() does not have the 'dates' array.
dates = [];
fetchEventDays(y, m+1);
$('#datepicker').datepicker({
dateFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true,
setDate: today,
inline: false
});
$('#datepicker').datepicker('option', 'onChangeMonthYear', fetchEventDays);
$('#datepicker').datepicker('option', 'beforeShowDay', highlightDays);
$('#datepicker').datepicker('option', 'onSelect', getday);
//------------------------------------------------------------------
//getday
//------------------------------------------------------------------
function getday(dateText, inst) { 
$('#content').load('http://www.mydomain/eventmgr.cgi?do=view_day;date='+dateText+' #eventMgr_content', function() {
alert('Load was performed. '+dateText);
});
}
//------------------------------------------------------------------
//fetchEventDays
//------------------------------------------------------------------
function fetchEventDays(year, month) {
var paramStr ='?do=get_event_dates&yr=' + year + '&mo=' + month;
$.get('<%config.db_cgi_url%>/eventmgr-ajax.cgi'+ paramStr, function(data) {
var recur_dates = data.split(',');
for(var i = 0; i < recur_dates.length; i++) {
var date_parts = recur_dates[i].split('-');
dates.push(new Date(date_parts[0], date_parts[1]-1, date_parts[2]));
}                       
//This causes dates with events to highlight on initial draw, but
//when clicking to the next month, it switches back to orig month.
//       $('#datepicker').datepicker('option', {}); //Refresh
});
}
//------------------------------------------------------------------
//highlightDays
//------------------------------------------------------------------
function highlightDays(date) {
for (var i = 0; i < dates.length; i++) {
if ((dates[i].getTime() == date.getTime())) {
return [true, 'highlight'];
}
}
return [true, ''];
}
});
</script>
InformationsquelleAutor Chris | 2011-05-10