Правильный способ добавления обратного вызова к jQuery DatePicker

DatePicker имеет внутреннюю функцию, _adjustDate () , после которой я хотел бы добавить обратный вызов.

Текущий метод


Это как я сейчас это делаю. По сути, это просто замена определения функции на себя плюс новые операции. Это влияет на все датпикеры, что, я не уверен, желательно.

$(function(){

   var old = $.datepicker._adjustdate;

   $.datepicker._adjustDate = function(){
      old.apply(this, arguments);

      // custom callback here     
      console.log('callback');
   };

});

_adjustDate - это то, что вызывается при щелчках в следующем / предыдущем месяце. Функция принимает три параметра. Мне любопытно, есть ли лучший способ добавить обратный вызов.


Ожидаемый результат


Я бы хотел, чтобы конечный результат выглядел так; где afterAjustDate - дескриптор обратного вызова:

$('#datepicker').datepicker({ 
       showButtonPanel: true
     , afterAdjustDate: function(){ $(this).find('foo').addClass('bar'); }
});


FYI


onChangeMonthYear не является приемлемой альтернативой события, также нет параметров привязки live () / delegate () (не работает в IE).

Это связано с необходимостью применения классов / манипулирования элементами после месяца выбрано. Изменение месяца воссоздает элементы в календаре; когда это выполняется, jQueryUI недостаточно умен, чтобы наследовать изменения класса. Таким образом, мне нужен обратный вызов после изменения даты.

17
задан vol7ron 28 August 2011 в 15:35
поделиться