Dojo栏菜单是选定状态的堆栈

时间:2012-08-19 20:01:48

标签: javascript dojo

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

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>

1 个答案:

答案 0 :(得分:1)

我在结束前的过程结束时将语句“_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);
            });
        });
}