0

我同时使用 OpenLayers 和 ExtJS。在地图中,我会在您与地图交互时出现弹出窗口。这些弹出窗口的 HTML 包含一个容器,我用它来创建一个带有菜单的 extjs 按钮。

当您关闭弹出窗口或单击菜单/按钮时,菜单不会消失。单击按钮以显示菜单后,它仍然可见!为了解决这个问题,我可以编写一些代码来手动销毁它 - 但我只是在弹出窗口关闭时触发此代码。有谁知道为什么带有菜单的按钮会这样?

在地图上创建弹出窗口时,我初始化按钮和菜单:

Map.popupMenu = new Ext.menu.Menu({
    id: "ChangesGridContextMenu",
    items: [{ .... }]
});

Map.popupButton = new Ext.Button({
    id: "popupActions",
    text: "Actions..",
    menu: Map.popupMenu
});

当弹出窗口关闭时,我会销毁 extjs 组件:

if (Map.popupMenu !== null) {
    Map.popupMenu.destroy();
    Map.popupMenu = null;
}
if (Map.popupButton !== null) {
    Map.popupButton.destroy();
    Map.popupButton = null;
}
4

0 回答 0