使用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对象 AFTER IFRAME完成加载其文档。我得到了IFRAMES文档的宽度和高度,然后调整了IFRAME的大小以适应没有滚动条的文档,然后我调整了YUI面板的大小以正确包含IFRAME。
完成此操作后,我打电话给:
dialog.center();
这会将YUI模态面板正确定位在屏幕中央。第一次一切都很棒。最初当我想关闭对话框时,我试图通过使用destroy()方法完全从文档中删除它,但我一直得到一个config null引用错误,所以我现在只是隐藏对话框。当我尝试再次为同一页面显示对话框时,会出现真正的问题。 Panel正确显示,但现在浏览器窗口不应该显示垂直滚动条。
由于某种原因,Modal叠加是否会增长?有没有办法*重置* Panel或从文档中删除它,以便在需要时动态添加?
此外,相同的小部件但不同的问题。在我重新调整YUI面板并重新定位后,我遇到了另一个有趣的情况。底座没有增长到与面板的新尺寸相匹配。我不得不手动去调整底衬的大小。有更好的方法吗?
提前感谢您的帮助。
丹尼尔
答案 0 :(得分:0)
$("yourpanel_ID").remove();
要从DOM中删除面板, 通过这种方式,您可以随时重新开始。