我必须在第二个模态窗口上打开一个模态窗口。在显示第二个窗口之后,两个人都争先恐后地站在前面。 我已经尝试过bringToFront()方法,但它没有用。 任何人都有解决这个问题的方法。
答案 0 :(得分:3)
Ext.WindowManager.bringToFront(window);
应该有效,here is a demo。
答案 1 :(得分:2)
您需要推迟打开新模式。这是ExtJS中的常见问题,其大多数自动DOM操作都在其组件上。例如,如果您尝试在创建后立即将值设置为表单对象,您可能会注意到它不起作用(至少对我来说它不起作用)。在尝试了ExtJS在其库中的每种可能的方法之后,我花了几个令人沮丧的时间来提出这个解决方案(到目前为止,这是唯一对我有用的解决方案)。我仍然不知道为什么会发生这样的事情以及为什么推迟这个伎俩(对此的任何启示都会受到高度赞赏)。
话虽如此,这样做的方法就像将代码包装在匿名函数中并使用超时调用它一样简单(大约10ms应该可以解决)。您甚至可以使用Ext.Function.defer
提供一些其他选项,例如更改函数范围,将其他参数传递给函数等。您可以在您认为应该理想工作但不工作的任何代码上尝试此方法(比如设置组件值,显示,隐藏等)。
setTimeout(function(){
// your code to render the modal or other ExtJS components
...
}, 10);
// or do it the ExtJS way
Ext.Function.defer(function(){
...
}, 1); // giving 1ms works in most cases
答案 2 :(得分:0)
给他们不同的id / class,并在CSS上给他们不同的z索引。应该工作。