我对filteringselect进行了一些改进,因此它会接受复选框输入,这样我就可以使用小部件选择多个值。
只有一件事我无法解决
选择下拉选项中的任何项目时,下拉菜单将关闭
这是预期的行为,但我需要取消“closeDropDown”方法,因为目的是选择尽可能多的项目。
怎么实现呢?
答案 0 :(得分:1)
只需覆盖自定义窗口小部件中的closeDropDown方法,不执行任何操作......
e.g。 :
require([
'dojo/_base/declare',
'dijit/popup',
'dijit/form/FilteringSelect',
'dojo/domReady!'
], function (declare, popup, FilteringSelect) {
var CustomFilteringSelect = declare([FilteringSelect], {
closeDropDown : function(/* Boolean */ focus){
console.log("Not closing");
},
postCreate : function(){
this.inherited(arguments);
this.on("blur", function(){
if(this._opened){
this._popupStateNode.setAttribute("aria-expanded", "false");
if(focus){
this.focus();
}
popup.close(this.dropDown);
this._opened = false;
}
});
}
});
var select = new CustomFilteringSelect(someprops, somenode);
select.startup();
});
有关示例,请参阅http://jsfiddle.net/psoares/72HKG/。