DatePicker имеет внутреннюю функцию _adjustDate()
, которую я хотел бы добавить после.
Текущий метод
Вот как я сейчас это делаю. В принципе, просто замена функции defintion на себя, а также новые операции. Это влияет на всех датпикеров, которых я не уверен в этом.
$(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 недостаточно умен, чтобы наследовать изменения класса. Таким образом, мне нужно обратный вызов после изменения даты.