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