Extjs -(双)在另一个弹出窗口顶部创建第二个弹出窗口会破坏隐藏/显示功能吗?

问题描述 投票:0回答:1

已测试的扩展版本:6.2.1 rev 167

测试的浏览器版本:Chrome 112.0.5615.165 Ubuntu 22.04.2 LTS

描述: 创建第二个弹出窗口时,两个动画弹出窗口不起作用,触发双重创建

1.点击设置按钮打开第一个弹出窗口; 2a.通过聚焦文本字段打开第二个弹出窗口; 3.按取消按钮隐藏第二个弹出窗口

2b。如果双击文本字段(首次加载时 - 尚未创建) - 取消按钮不起作用

小提琴 https://fiddle.sencha.com/#view/editor&fiddle/3olu

删除其中一个弹出窗口似乎有帮助 或者 - 删除动画似乎在一定程度上有帮助(取决于 Ext 版本)

extjs popup
1个回答
0
投票

发生这种情况是因为当双击文本框焦点事件被调用两次并且执行 show() 两次也会破坏弹出窗口时,解决方案是第一次如果聚焦文本框则禁用文本框,并在关闭弹出窗口时再次启用:

将焦点放在文本框上,放置 this.disable();

 听众:{
           焦点:函数(){
             
             this.disable();

             让 cSelectPanel = Ext.ComponentQuery.query('#cSelectPanel')[0];
             
             if (cSelectPanel 类型 == "未定义") {
                cSelectPanel = Ext.create('cSelectPanel');
                Ext.Viewport.add(cSelectPanel);
             }
             cSelectPanel.show();
             
           },
          
       }

并在弹出面板上隐藏重新启用:

 听众:{
        隐藏:函数(){
               
               var txt = Ext.ComponentQuery.query('#MyText')[0];
               txt.enable();
               
           }
   },

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.