1

Dojo dijit.MenuBarItem をプログラムで選択解除する方法を知っている人はいますか。問題は、dijit.MenuBar の項目の 1 つを選択するとダイアログがポップアップし (バー メニュー項目の選択が解除されていることがわかります)、ユーザーは情報を入力してダイアログを閉じますが、バー メニュー項目が再び選択され、常に選択されたままです。私が試してみました:

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>
4

1 に答える 1

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);
            });
        });
}
于 2013-12-27T13:08:26.427 に答える