2015-03-25 5 views
1

Мне нужно изменить компоненты Datebox и CalendarPop (Calendar) таким образом, чтобы, если я дам им конкретную дату/дату, календарь Calendarbox будет показывать эти даты с определенным CSS (например, даты праздников).zk: расширение виджетов Datebox и Calendar

Я еще ничего не сделал с расширением виджета. Я уже проверял источники Datebox.js и понятия не имею, как переопределить функцию _initPopup(), где инициализируется zul.db.CalendarPop().

Возможно, есть другой подход к достижению того, что я хочу, или что-то не так?

Любая информация будет принята с благодарностью!

ответ

0

Вы можете использовать zk.override(), чтобы переопределить класс виджетов ZK.

Например,

(function() { 
    var _oldPop = {}; 

zk.override(zul.db.CalendarPop.prototype, _oldPop, { 
    setXXX: function() { 
     // override XXX function here. 
     _oldPop.setXXX.apply(this, arguments); // invoke the original one if needed. 
    } 
}); 

})(); 

Пока переопределяется код может быть запущен до того, что функция SetXXX вызывается.