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'); }
});
onChangeMonthYear
не является приемлемой альтернативой события, также нет параметров привязки live ()
/ delegate ()
(не работает в IE).
Это связано с необходимостью применения классов / манипулирования элементами после месяца выбрано. Изменение месяца воссоздает элементы в календаре; когда это выполняется, jQueryUI недостаточно умен, чтобы наследовать изменения класса. Таким образом, мне нужен обратный вызов после изменения даты.