0

別の dijit.Dialog から dijit.Dialog を開くことができません。Dojo バージョン 1.5 の時点で正常に動作することを示唆する他の投稿をここで見ましたが、私は Dojo 1.6.1 を使用しており、あまり運がありません。http://dojotoolkit.org/documentation/tutorials/1.7/dialogs_tooltips/にあるDojo のドキュメントでは、「dijit/Dialog について知っておくべき重要な事実の 1 つは、インスタンスが「スタックに追加されることです。 "インスタンスを相互に重ねることができるようにします。"

現在表示されているダイアログから 2 番目のダイアログで show() を呼び出すと、2 番目のダイアログが一瞬ほとんど表示されなくなり、その後ブラウザが更新され、最初のダイアログだけが表示されたままになります。

簡単な例を次に示します。

<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 はその上にモーダル ダイアログとして表示されます。

4

1 に答える 1

1

アンカー タグがありdocument.location.href = ""、onclick が返されるため、それが発生しますtrue

以下を参照してください: JavaScript リンクには、「#」または「javascript:void(0)」のどちらの「href」値を使用すればよいですか?

に訂正

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

onclick が a true(the dos .show()that) を返した場合、 an の予期される動作は予期されるものであり、<a>別のページに移動するリンクをクリックしていることになります。が空白の間、href同じページがリロードされます。

于 2012-07-29T18:56:14.357 に答える