gpt4 book ai didi

javascript - dojo dijit 对话框底层未显示

转载 作者:行者123 更新时间:2023-11-28 02:57:59 26 4
gpt4 key购买 nike

我尝试最初隐藏三个不同的对话框,然后根据 ajax 表单提交的响应,我希望显示不同的对话框。

当提交表单并等待响应时,我可以显示“正在进行”对话框。然后,如果服务器返回错误响应,我想隐藏第一个对话框,然后根据错误响应类型显示另一个对话框。

我几乎可以实现我想要做的事情,除了当我隐藏第一个对话框并显示下一个对话框时,底层消失了。如果我在浏览器窗口内滚动,则底层会正确显示。我正在做这样简单的事情:

dijit.byId("progress_dialog").hide();
dijit.byId("error_dialog").show();

有人有建议吗?

我在dojo网站上看到了以下页面,但这似乎是dojo 0.9的临时解决方案? http://www.dojotoolkit.org/forum/dijit-dijit-0-9/dijit-support/showing-dialog-right-after-hiding-another-dialog-while-keeping-u

如有任何帮助,我们将不胜感激。

谢谢。

[编辑]好吧,我已经通过添加一点延迟来“解决”了这个问题,如下所示。

dijit.byId("progress_dialog").hide();
setTimeout(function() {
dijit.byId("error_dialog").show();
}, 500);

这对我有用,但我认为可能有更好的方法来解决它。有接受者吗?

[再次编辑]我正在使用的版本是dojo-1.3.2

最佳答案

dojo 1.3 中对话框的底层出现了很多问题,因为所有对话框对象开始使用 1 个公共(public)底层对象(而不是创建自己的底层)。
我怀疑您的案例中的底层在隐藏之前就已显示 - 如果您愿意,您可以进行调试;)
作为一种解决方法,超时是可以的(我猜它可以更短)。或者您可以尝试连接到 hide 方法(但不确定这是否有帮助):

dojo.connect(dijit.byId("progress_dialog"), "hide", dijit.byId("error_dialog"), "show");
dijit.byId("progress_dialog").hide();

但是考虑到 1.3 中底层的所有这些问题,我会考虑使用 dojo 1.4,因为 dijit.Dialog 的一些补丁已经提交:http://docs.dojocampus.org/releasenotes/1.4 .

关于javascript - dojo dijit 对话框底层未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com