Проблемы с изменением размера панели YUI - PullRequest
0 голосов
/ 07 октября 2009

У меня проблемы при использовании панели YUI в качестве диалогового окна.

У меня есть объект диалога, созданный с использованием JavaScript при загрузке страницы:

$J = jQuery;
dialog = new YAHOO.widget.Panel("dialog", { width: "300px", fixedcenter: true, close: true, draggable: true, zindex: 4, modal: true, visible: false });

Затем, когда я вызываю свою функцию loadDialog () из события на странице:

dialog.setBody("<iframe id=\"ifrDialog\" scrolling=\"no\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\"></iframe>");
dialog.hideEvent.subscribe($$F.endDialog);
dialog.render(document.body);
// Set iframe
$J("#ifrDialog").get(0).contentWindow.location.replace(url);

Затем сложность была в том, что мне нужно было изменить размер Panel и объекта IFRAME. ПОСЛЕ , IFRAME завершил загрузку своего документа. Я получил ширину и высоту документа IFRAMES, а затем изменил размер IFRAME, чтобы он соответствовал документу без полос прокрутки, а затем изменил размер панели YUI, чтобы правильно разместить IFRAME.

После того, как это было сделано, я звоню:

dialog.center();

, и это правильно позиционирует модальную панель YUI в центре экрана. Все отлично с первого раза. Первоначально, когда я хотел закрыть диалоговое окно, я пытался полностью удалить его из документа, используя метод destroy (), но я продолжал получать ошибку нулевой ссылки конфигурации, поэтому просто скрываю диалоговое окно. Настоящая проблема возникает, когда я пытаюсь снова показать диалог для той же страницы. Панель отображается правильно, как и должно быть, за исключением того, что теперь в окне браузера есть вертикальные полосы прокрутки, когда этого не должно быть.

По какой-то причине растет модальный оверлей? Есть ли какой-нибудь способ * перезагрузить * Panel или удалить ее из документа, чтобы ее можно было динамически добавлять при необходимости?

Кроме того, тот же виджет, но другая проблема. Я столкнулся с другой интересной ситуацией после того, как изменил размеры и изменил положение панели YUI. Подложка не увеличивалась в соответствии с новым размером панели. Мне пришлось вручную перейти и изменить размер подложки. Есть ли лучший способ сделать это?

Заранее спасибо за помощь.

Daniel

1 Ответ

0 голосов
/ 10 декабря 2009

задумывались ли вы об использовании:

$("yourpanel_ID").remove();  

Чтобы удалить панель из DOM, таким образом, вы начнете с нового в любое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...