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 недостаточно умен, чтобы наследовать изменения класса.Таким образом, мне нужно перезвонить после изменения даты.