【问题标题】:onload hiding of dojo加载隐藏道场
【发布时间】:2013-07-13 16:40:39
【问题描述】:

使用this作为学习工具,我修改如下,依旧显示。如何在用户看到页面之前隐藏它。这是与 srciptalous Element.fade 类似的问题,即使在 onLoad 中调用函数,我也无法在用户看到之前将其隐藏。 TIA。

<script type="text/javascript">
  dojo.require("dojo.parser");
  dojo.require("dijit.form.Button");
  dojo.require("dijit.Dialog");
  dojo.require("dijit.form.TextBox");
  //dojo.addOnLoad(showDialog);
  dojo.addOnLoad(hideDialog);
  function showDialog() {
    dijit.byId('dialog1').show();
  }
  function hideDialog() {
    dijit.byId('dialog1').hide();
  }
  </script>

【问题讨论】:

    标签: dojo dialog


    【解决方案1】:

    由于各种原因,我不建议使用该教程。

    1. Dojo 对其语法进行了很大更改,现在使用异步方法。这意味着自 Dojo 1.7 以来许多语法发生了变化。更糟糕的是,您现在使用的语法将在 2.0 版中消失。
    2. 通常认为使用&lt;table&gt; 元素创建布局是一种不好的做法。表格只能用于显示表格数据。

    但作为对您问题的回答,您可以在对话框中定义一个名为 data-dojo-props="open: false" 的属性,但奇怪的是它已经打开,因为它通常默认关闭。

    如果您还想在 Dojo 加载之前隐藏 HTML,您可以添加一个 style 属性,如下所示:style="display: none"。这将确保在您的对话框中调用 show() 函数之前,不会向用户显示 HTML。

    我还做了一个 JSFiddle(并稍微更新了语法),here 就是结果。

    【讨论】:

    • 感谢您的完整回答和启发。我胆怯地问如何用较新的 Dojo 语法和结构来做这样的例子。再次感谢您
    • 你在哪里得到这个错误?在 JSFiddle 上?你用的是哪个浏览器?
    • 但我正在加载“registry.byId() is undefined”,如下所示。刚看到你的回复,谢谢。我正在接受我的测试。 ' ..."> require(["dijit/registry", ..."], function(registry, ready) {准备好(函数(){registry.byId(“btn”).set('onClick',function(){console.log(“test”);registry.byId(“dialogOne”).show();}); }); });对不起仍然dk如何格式化
    • 您不能在 cmets 中突出显示那么多,但是当您缩进代码或单击编辑器中的代码按钮时,它会自动突出显示。对于小代码块,您可以使用重音符号 ``。但它不起作用的原因是我添加了一个名为btn 的自定义按钮来显示弹出窗口(在我的测试中)。删除那部分代码,它可能会起作用。
    • 我猜你在第一条评论中要求的教程是这个:dojotoolkit.org/documentation/tutorials/1.9/dialogs_tooltips
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2014-03-18
    • 2011-07-25
    • 2019-02-20
    • 1970-01-01
    相关资源
    最近更新 更多