2013-07-13 48 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(); } ); }); }); 對不起如何格式化 –