Dojoバージョン1.6.1を使用しています。PopupMenuItemからのポップアップとしてDialogdijitを持つメニューを作成しています。これは機能しますが、メニューがアプリケーションの右側にドッキングされている場合は、メニューの左側にポップアップを表示する必要があります。これを機能させることができないようです。別のタイプのウィジェット(ColorPaletteなど)を使用する場合、これは正常に機能します。ポップアップサブメニューとポップアップColorPaletteを使用すると、メニューが画面の右側にある場合はすべてが左側に開き、メニューが画面の左側にある場合はすべてが右側に開きます。Dojoはこれを自動的に処理します。ただし、ダイアログウィジェットを使用すると、空のウィジェットであっても、メニューが画面上のどこにあるかに関係なく、常にPopupMenuItemの右側にポップアップ表示されます。おそらくdijitであるdivの高さと幅を指定すると思いました。
コードの簡略化されたバージョンは次のとおりです。
<div data-dojo-type="dijit.Menu" id="toolPalette" style="position:absolute; right:0; top:0; z-index: 999;">
</div>
<script>
// Grab the div for the menu, declared in the HTML above.
var toolPalette = dijit.byId("toolPalette");
// This tool button has a popup
var menuItem1 = new dijit.PopupMenuItem({
id: "menuItem1",
iconClass: "shelterIcon",
popup: new dijit.Dialog()
});
toolPalette.addChild(menuItem1);
// This tool button does not have a popup
var menuItem2 = new dijit.MenuItem({
id: "menuItem2",
iconClass: "shelterIcon"
});
toolPalette.addChild(menuItem2);
toolPalette.startup();
</script>
どんな助けでも大歓迎です!私は考えられるすべてを試しました。