Я перекриваю метод PopupPanel.doResizeOrMove RichFaces наступним чином:
(function() {
var richfacesUiPopupPanelDoResizeOrMove = RichFaces.ui.PopupPanel.prototype.doResizeOrMove;
RichFaces.ui.PopupPanel.prototype.doResizeOrMove = function(diff) {
richfacesUiPopupPanelDoResizeOrMove.call(this, diff);
};
})();
Врешті-решт я хочу додати деяку додаткову функціональність, отже, переосмислення. Але з кодом вище я очікую такої ж поведінки, що і з оригінальним методом.
Однак PopupPanel швидко виходить звікно перегляду, коли я починаю його переміщувати. Це відома проблема з перекриттям JavaScript через виклик (я отримую таку саму поведінку через застосувати) або якась конкретна проблема RichFaces? Що я роблю неправильно?
Дякую
Відповіді:
0 для відповіді № 1The doResizeOrMove
метод має повернене значення, яке втрачається у вашій реалізації. Вона повинна бути
return richfacesUiPopupPanelDoResizeOrMove.call(this, diff);
Поки перезапис прототипу спрацює, вам, можливо, захочеться поглянути $.extend()
, це те, що ми використовуємо для створення компонентів.
(function() {
var richfacesUiPopupPanelDoResizeOrMove = RichFaces.ui.PopupPanel.prototype.doResizeOrMove;
$.extend(RichFaces.ui.PopupPanel.prototype, (function(options) {
return {
doResizeOrMove: function(diff) {
return richfacesUiPopupPanelDoResizeOrMove.call(this, diff);
}
};
})());
})();