0
我在頁面上使用了dojo checkedmulitselect,並讓它正常工作。 我如何配置它,以便下拉菜單打開,無論我點擊哪個控件?目前只有當我點擊控件的箭頭部分時纔會打開。 這可能嗎?Dojo CheckedMultiSelect下拉菜單,當點擊文本時如何打開
我從http://jsfiddle.net/phusick/894af/這個例子
當前代碼:
require(["dojo/parser", "dijit/form/Form"]);
require([
"dojo/_base/declare",
"dojo/_base/lang",
"dojo/_base/array",
"dojo/on",
"dojo/dom",
"dojo/store/Memory",
"dojo/store/Observable",
"dojo/data/ObjectStore",
"dojox/form/CheckedMultiSelect",
"dijit/Tooltip",
"dojo/mouse",
"dojo/dom-attr",
"dojo/query",
"dojo/dom-class",
"dijit/place",
"dojo/domReady!"
], function(
declare,
lang,
array,
on,
dom,
Memory,
Observable,
DataStore,
CheckedMultiSelect,
Tooltip,
mouse,
domAttr,
query,
domClass,
place
) {
var memoryStore = new Memory({
idProperty: "value",
data: [
{value: "CT", label: "Label One"}
]
});
var dataStore = new DataStore({
objectStore: memoryStore,
labelProperty: "label"
});
var MyCheckedMultiSelect = declare(CheckedMultiSelect, {
startup: function() {
this.inherited(arguments);
setTimeout(lang.hitch(this, function() {
this.dropDownButton.set("label", this.label);
}));
},
_updateSelection: function() {
this.inherited(arguments);
if(this.dropDown && this.dropDownButton) {
var numOptionsSelected = 0;
var label = "";
array.forEach(this.options, function(option) {
if (option.selected) {
label += (label.length ? ", " : "") + option.label;
numOptionsSelected++;
}
});
if (numOptionsSelected > 0) {
this.dropDownButton.set("label", label.length ? label : this.label);
}
}
}
});
var checkedMultiSelect = new MyCheckedMultiSelect ({
dropDown: true,
multiple: true,
label: 'Code Table',
name: 'queryType',
store: dataStore
}, "placeholder");
array.forEach(checkedMultiSelect.options, function(option){
option.selected = true;
});
checkedMultiSelect.startup();
});
您可以發佈您已使用的代碼以及您嘗試過的方法嗎?這在試圖回答你的問題時很有用。 –
嗨,這裏是我使用的代碼。我看到一個符合我需求的例子,除了打開下拉列表的唯一方法是單擊向下箭頭。 – blu10