/ / Перезапис методу RichFaces PopupPanel.doResizeOrMove без змін викликає непослідовну поведінку - javascript, jsf, richfaces

Перевизначення методу RichFaces PopupPanel.doResizeOrMove без змін призводить до непослідовної поведінки - javascript, jsf, richfaces

Я перекриваю метод 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 для відповіді № 1

The 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);
}
};
})());
})();