在我的 dijit 工具栏中,我使用 DropDownButton 来保存带有许多 MenuItem 的 dijit.Menu。这些 MenuItem 控制我项目中的各种功能。DropDownButton 和 Menu 在 html 页面中声明,但 MenuItems 是在运行时动态创建的。
当用户点击一个 MenuItem 时,它会改变页面上某些东西的模式。目前,用户无法通过查看 dropdownMenu 本身来知道他/她最后在 dropdownMenu 中选择了什么。有没有一种方法(CSS 或 JavaScript)可以强制所选 MenuItem 的背景颜色保持不变,直到用户单击同一下拉菜单上的另一个选择?
显然,我可以在其他地方显示一个标签,告诉用户它处于什么模式,但这不像下拉菜单本身的选定感觉那么直观。
这是 HTML 部分的声明方式:
<button dojoType="dijit.form.DropDownButton" iconClass="esriLayerIcon" id="VFAContentBtn" label="Content Filter" title="Content Filter" style="width: 200px">
<div dojoType="dijit.Menu" id="VFAContentDDMenuMain">
</div>
</button>
这是对运行时填充的粗略了解:
var contentMenu = dijit.byId("VFAContentDDMenuMain");
// add the ALl Campus regardless.
// For the clicked value, we will use 0 for the ALL.
contentMenu.addChild(new dijit.MenuItem({
label : "All Campuses",
id : "C:0",
focused : true,
onClick : function(evt) {CampusFilterClicked(evt)}
}));
// For the individual campus, we will just use the Campus Id since the menu has campuses only.
for (var i = 0; i <= arrRegionCampus.length - 1; i++) {
var campusId = Math.abs(arrRegionCampus[i].CampusId);
var campusName = arrRegionCampus[i].CampusName;
// the evt of the onClick will contain the information we need.
var menuX = new dijit.MenuItem({
id : "C:" + campusId,
label : campusName,
onClick : function(evt) {
CampusFilterClicked(evt);
}
});
contentMenu.addChild(menuX);
menuX = null;
}