我无法从另一个dijit.Dialog打开dijit.Dialog。我在这里看到其他帖子表明它在Dojo版本1.5中运行良好,但我使用的是Dojo 1.6.1并没有太多运气。 http://dojotoolkit.org/documentation/tutorials/1.7/dialogs_tooltips/处的Dojo文档似乎表明,支持这一点的地方说:“了解dijit / Dialog的一个重要事实是将实例添加到”堆栈“中,以便您可以在一个实例上添加实例另一个“。
当我在当前显示的第二个对话框上调用show()时,第二个对话框暂时几乎看不到,然后浏览器刷新,只显示第一个对话框。
这是一个简单的例子:
<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作为模态对话框显示在其上方。
答案 0 :(得分: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
是空白,但会重新加载相同的页面。