Méthode appropriée pour ajouter un rappel à jQuery DatePicker
DatePicker a une fonction interne, _adjustDate()
je voudrais ajouter un rappel après.
Méthode Actuelle
C'est de cette façon que je suis en train de faire cela. Au fond, juste le remplacement de la définition de la fonction avec elle-même, en plus de la nouvelle exploitation. Cela a un impact sur tous les datepickers, dont je ne suis pas sûr, c'est souhaitée, que ce soit.
$(function(){
var old = $.datepicker._adjustdate;
$.datepicker._adjustDate = function(){
old.apply(this, arguments);
//custom callback here
console.log('callback');
};
});
_adjustDate est ce qui est appelée lors de la next/prev mois clics. La fonction prend trois paramètres. Je suis curieux de savoir si il ya une meilleure façon d'ajouter de la fonction de rappel.
Résultat Attendu
J'aimerais avoir le résultat final ressemble à ceci; où afterAjustDate
est le rappel de la poignée:
$('#datepicker').datepicker({
showButtonPanel: true
, afterAdjustDate: function(){ $(this).find('foo').addClass('bar'); }
});
FYI
onChangeMonthYear
n'est pas acceptable cas de remplacement, ni de la live()
/delegate()
(ne fonctionne pas sous IE) de liaison options.
Cela vient de la nécessité de l'application de classes et/ou la manipulation des éléments à partir de ce mois-ci est sélectionné. Changer le mois recrée éléments dans le calendrier; lorsque cette opération est effectuée à jQueryUI n'est pas assez intelligent pour hériter de la classe changements. Donc, j'ai besoin d'un rappel après la modification de la date.
source d'informationauteur vol7ron
Vous devez vous connecter pour publier un commentaire.
J'ai écrit une petite démo qu'est-ce que...
- Je créer un objet littéral qui contient les extensions de $.datepicker et puis n' $.étendre sur $.datepicker et mon objet.
Vous pouvez le vérifier ici: http://jsfiddle.net/NHN4g/4/
Voici l'extension de lui-même:
Et la démo:
(html)
(javascript)
Il y a un onSelect option que vous pouvez utiliser pour passer d'une fonction de rappel pour le datepicker. Cela ressemble à ce pourrait être une solution intégrée à ce dont vous avez besoin.