代码之家  ›  专栏  ›  技术社区  ›  Vicky

Dojo确认对话框隐藏取消按钮

  •  1
  • Vicky  · 技术社区  · 7 年前

    我有一个道场 ConfirmDialog 如下:

    this.myDialog = new ConfirmDialog({
                       title: "My Dialog",
                       content: "Do you want to continue?",
                       class: "confirmDialog",
                       closable: false
                    });
    
    // change button labels
    this.myDialog.set("buttonOk","Yes");
    this.myDialog.set("buttonCancel","No");
    
    // register events
    this.myDialog.on("execute", function() { 
                                  self.continueSomething() 
                                });
    

    稍后,基于某些情况,我正在更新 确认对话框 动态如下:

    this.myDialog.set("title", "New Title");
    this.myDialog.set("content", "Its too late. Press ok to re-route.");
    this.myDialog.set("buttonOk","Ok");
    

    在这个阶段,我对 Cancel 按钮。我该怎么藏起来?

    以下工作均不进行:

    this.myDialog.cancelButton.hide();
    //or
    this.myDialog.cancelButton.set("display", "none");
    //or 
    this.myDialog.cancelButton.set("display", none);
    

    我可以禁用它,因为:

    this.myDialog.cancelButton.set("disabled", true);
    

    但这看起来不正确。我想隐藏 取消 完全按下按钮。

    我该怎么做?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Bourbia Brahim    7 年前

    这个 cancelButton 是一个 button Dijit ,如果要最后隐藏/显示此内容, 你必须通过smply输入访问它的domnode this.myDialog.cancelButton.domNode 并使用 dojo/dom-style 隐藏/显示如下

    let cancelBtnDom = this.myDialog.cancelButton.domNode;
    domStyle.set(cancelBtnDom, 'display', 'none');
    

    请参见下面的工作Wnippet(使用外部按钮禁用启用)

    require(["dijit/ConfirmDialog", "dojo/dom-style", "dojo/domReady!"], function(ConfirmDialog, domStyle){
        myDialog = new ConfirmDialog({
            title: "My ConfirmDialog",
            content: "Test content.",
            style: "width: 300px"
        },"dialog");
        
        let cancelBtn = myDialog.cancelButton.domNode;
        
        let switchBtn = document.getElementById("switch");
        
        switchBtn.addEventListener("click",function(){
         let display = domStyle.get(cancelBtn, "display") !== "none" ?  "none" : "";
         console.log(display);
          domStyle.set(myDialog.cancelButton.domNode, 'display', display);
        });
        
    });
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
    <link href="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/claro.css" rel="stylesheet" />
    
    <body class="claro">
      <div class="dialog"></div>
      <button onclick="myDialog.show();">show</button>
      <button id="switch" >enable/Disable cancel button</button>
    </body>
    推荐文章