dijit FilteringSelect禁用项目单击事件

时间:2014-02-25 09:21:37

标签: dojo

我对filteringselect进行了一些改进,因此它会接受复选框输入,这样我就可以使用小部件选择多个值。
只有一件事我无法解决 选择下拉选项中的任何项目时,下拉菜单将关闭 这是预期的行为,但我需要取消“closeDropDown”方法,因为目的是选择尽可能多的项目。
怎么实现呢?

1 个答案:

答案 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/