つまり、テーブルの上に浮かんでいて、テーブルセル内にレンダリングされていないドロップダウンメニューを表示するにはどうすればよいですか?
このサンプルコードを使用して、テーブルセル内にドロップダウンメニューを表示しています。
window.someObj.showSocs = function(index){
var pSubMenu = new DropDownMenu({});
pSubMenu.addChild(new MenuItem({
label: "Cut",
iconClass: "dijitEditorIcon dijitEditorIconCut"
}));
pSubMenu.addChild(new MenuItem({
label: "Copy",
iconClass: "dijitEditorIcon dijitEditorIconCopy"
}));
pSubMenu.addChild(new MenuItem({
label: "Paste",
iconClass: "dijitEditorIcon dijitEditorIconPaste"
}));
pSubMenu.placeAt("socs-" + index.toString());
pSubMenu.startup();
}
ここDropDownMenu
で"dijit/DropDownMenu"
、MenuItem
はです"dijit/MenuItem"
。
次に、このコードを使用してテーブルセルへのリンクを追加しています(dgrid renderCell関数内で実行されますが、この問題には関係ないと思います)。
var link = document.createElement("a");
var linkText = "javascript:someObj.showSocs(" + index + ")";
link.setAttribute("href", linkText);
link.innerHTML = "DropNew";
td.appendChild(link);
td.setAttribute("id", "socs-" + index.toString());
リンクをクリックすると、ドロップダウンがレンダリングされますが、テーブルセルの上ではなく、テーブルセル内に表示されます。これにより、現在のテーブル行が展開されます。私が理解できないのは、いくつかのCSSプロパティにかかっていると思います。CSSプロパティをオーバーライドしていないので、ドロップダウンがセル内ではなくテーブル上に自動的に配置されることを期待しますか?