2009-10-07 174 views
0

我在使用YUI面板作爲對話框時遇到了麻煩。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); 

然後棘手的部分是我需要調整面板和IFRAME對象的大小,AFTER IFRAME完成加載它的文檔。我得到了IFRAMES文檔的寬度和高度,然後調整了IFRAME以適應沒有滾動條的文檔,然後我調整了YUI面板的大小以正確包含IFRAME。

在此之後做我打個電話給:

dialog.center(); 

這種正確定位的YUI模式面板在屏幕的中央。一切都很棒,第一次。最初,當我想關閉對話框時,我試圖通過使用destroy()方法將其從文檔中完全刪除,但我一直收到配置空引用錯誤,因此我現在只隱藏對話框。當我嘗試再次顯示相同頁面的對話框時,出現真正的問題。 Panel應該正確顯示,除非瀏覽器窗口不應該顯示垂直滾動條。

由於某種原因,模態疊加是否在增長?有什麼方法可以重置Panel或將其從文檔中移除,以便在需要時動態添加它?

此外,相同的部件,但不同的問題。我調整了YUI面板的大小並重新定位後,遇到了另一個有趣的情況。襯底的增長不符合小組的新尺寸。我不得不手動去調整底襯。有一個更好的方法嗎?

在此先感謝您的幫助。

丹尼爾

+0

Hey @Daniel P,你是如何在iframe加載完成後調整面板和iframe對象的?提前致謝。 – 2014-03-27 23:26:52

回答

0

你有沒有想過使用:

$("yourpanel_ID").remove(); 

從DOM, 這種方式卸下面板,你會用新的anytimes啓動。