Dojo栏菜单在选定状态下堆叠

Dojo bar menu is stack on selected state

本文关键字:状态 菜单 Dojo      更新时间:2023-09-26

有人知道如何以编程方式取消选择dojo dijit吗。菜单栏项。问题是,当我在dijit上选择其中一个项目时。菜单栏对话框弹出(我可以看到栏菜单项被取消选择),用户输入信息并关闭对话框,但栏菜单项再次被选中并一直保持选中状态。我试过:

dijit.byId("navMenu")._markInactive();  
dijit.byId("navMenu").isActive = false;

dijit.byId("transId")._markInactive();
dijit.byId("transId").isActive = false;

但它并没有做到这一点。还有其他建议吗,谢谢

<div data-dojo-type="dijit.layout.ContentPane" id='barPane'data-dojo-props="region:'top'" style="padding:0px;">
<div data-dojo-type="dijit.MenuBar" id="navMenu">
<div data-dojo-type="dijit.MenuBarItem" data-dojo-props="onClick:uploadAndClearDialog">Upload</div>
<div data-dojo-type="dijit.MenuBarItem" data-dojo-props="onClick:exportCsv">Download</div>
<div data-dojo-type="dijit.MenuBarItem" data-dojo-props="onClick:showTranslateDialog" id="transId">Translate</div>
</div>
</div>

我把语句"_setSelected(false)"放在进程的末尾,刚好在末尾之前,它就完美地工作了。

例如:

function yourFnt() {
    // Close dialog
    dijit.byId('yourDlg').onCancel();
    require(["dojo/request","dojo/domReady!" ],
    function(request) {
        var vURL = "yourserviceURL"
        var deferred = request.get(vURL, {
                        handleAs : "json"
                    });
        deferred.then(function(response) {
            ...
            ...
            // Unselect menuitem
            dijit.byId("yourMenuItem")._setSelected(false);
            });
        });
}