2012-07-15 67 views
0

我無法從其他dijit.Dialog打開dijit.Dialog打開道場對話框。我已經在這裏看到其他帖子,表明它可以在Dojo版本1.5下正常工作,但我使用的是Dojo 1.6.1,並沒有太多運氣。在http://dojotoolkit.org/documentation/tutorials/1.7/dialogs_tooltips/道場文件似乎表明,這是支持的地方說,「一個重要的事實瞭解的dijit /對話框是實例被添加到一個‘堆棧’,讓你可以對彼此頂部的情況。」如何從另一個對話框

當我打電話展()從一個當前所示的第二個對話框,在第二個對話框是片刻幾乎不可見,然後在瀏覽器刷新,只留下顯示的第一個對話框。

這裏有一個簡單的例子:

<html> 
<head> 
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dijit/themes/claro/claro.css" /> 
    <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js" djConfig="parseOnLoad: true"></script> 
    <script type="text/javascript"> 
     dojo.require("dijit.dijit"); 
     dojo.require("dijit.Dialog"); 
     dojo.ready(function() { 
      dijit.byId("dialog1").show(); 
     }); 
    </script> 
</head> 
<body class="claro"> 

    <div data-dojo-type="dijit.Dialog" id="dialog1" data-dojo-props="title:'Dialog 1'"> 
     I'm dialog 1 
     <a href="" onclick="dijit.byId('dialog2').show();">Open dialog 2</a> 
    </div> 

    <div data-dojo-type="dijit.Dialog" id="dialog2" data-dojo-props="title:'Dialog 2'" style="visibility:hidden;"> 
     I'm dialog 2 
    </div> 

</body> 
</html> 

我有一種感覺,我失去了一些東西簡單。有人可以幫我嗎?理想情況下,dialog1將保留在背景中,而dialog2作爲模態對話框出現在背景上。

+1

你有一個錨標記,它觸發一個document.location.href =「」因爲的onclick回報。正確到'Open dialog 2' – mschr 2012-07-15 23:29:51

+0

@mschr非常感謝你!這工作完美。你有解釋爲什麼這些修改是必要的。此外,你把這個評論,但如果你把它在一個答案,我會把它標記爲答案,所以你得到信用。 – 2012-07-28 17:49:19

回答

1

您有一個錨標記,它會觸發document.location.href = "",因爲onclick返回true

如下圖: Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?

正確

<a href="javascript:void(0); " 
     onclick="dijit.byId('dialog2').show(); return false "> 
             <!-- note 'false' --> 
Open dialog 2</a> 

如果的onclick返回true(該.show()確實是),那麼<a>的預期行爲是可以預料的,你就是點擊鏈接,將帶你到另一個頁面。雖然href是空白,然後重新加載相同的頁面。

+0

感謝您的澄清,@mschr和支持參考! – 2012-07-30 21:19:12

相關問題