2013-07-13 47 views
0

使用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> 

回答

2

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

  1. Dojo改变了他的语法,现在正在使用异步方法。这意味着自从Dojo 1.7以来改变了很多语法。更糟糕的是,现在使用的语法将在2.0版中消失。
  2. 使用<table>元素来创建布局通常被认为是不好的做法。表格只能用于显示表格数据。

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

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

我也做了一个JSFiddle(并更新了一点语法),here是结果。

+0

谢谢你的完整答案和建议。我怯生生地问,如何用新的Dojo语法和结构来做这样一个例子。再次感谢您 –

+0

你从哪里得到这个错误?在JSFiddle上?你正在使用哪种浏览器? – g00glen00b

+0

但我越来越“registry.byId()未定义”加载如下。刚刚看到你的回复,谢谢。我正在接受我的测试。 require([“dijit/registry”,...“],function(registry,ready){ ready(函数(){ registry.byId(“btn”).set('onClick',function(){ console.log(“test”); registry.byId(“dialogOne”)。show(); } ); }); }); 对不起如何格式化 –