2010-08-13 6 views
0

J'utilise le programme datepicker en ligne, en mettant en évidence les dates comportant des événements. Chaque fois que le mois change, il doit charger les nouveaux événements à partir du serveur. Le problème est, le onChangeMonthYear se déclenche uniquement sur des mois différents du mois en cours. Par exemple, si le mois d'août, il se déclenche tous les mois précédents (juillet, juin, mai ...) et tous les mois suivants (septembre, octobre ...), mais pas quand je reviens en août. Ceci est mon code:jQuery datepicker onChangeMonthYear ne se déclenche pas au cours du mois en cours

function highlightDates(date) { 
    for (var i = 0; i < agenda.length; i++) { 
     var start = agenda[i].start.toShortDate(); 
     var end = agenda[i].end.toShortDate(); 

     if (start >= date && end <= date) { 
      return [ true, 'dateHasEvent' ]; 
     } 
    } 

    return [ true, '' ]; 
} 

Date.prototype.toShortDate = function() { 
    var date = new Date(this.getFullYear(), this.getMonth(), this.getDate()); 
    return date; 
}; 

function monthChanged(year, month, instance) { 
    var date = new Date(year, month - 1); 

    $.getJSON('json.do', { 
     time : date.getTime() 
    }, updateCalendars); 
} 

function updateCalendars(data, status) { 
    agenda = data; 
    $('#calendar').datepicker('refresh'); 
} 

var agenda = []; 

$(function() {  
    $('#calendar').datepicker({ 
     beforeShowDay : highlightDates, 
     onChangeMonthYear : monthChanged, 
     changeMonth : false, 
     changeYear : false, 
     showButtonPanel : false 
    }); 
}); 

Est-ce que quelqu'un sait s'il s'agit d'un bug ou d'un comportement attendu?

Répondre

0

Eh bien, c'était stupide de ma part. Le problème était la méthode getJSON. Il est apparemment très difficile de savoir ce qu'il accepte. Donc, après avoir produit correct json, tout a fonctionné comme il se doit.

Questions connexes