已测试的扩展版本: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 版本)
发生这种情况是因为当双击文本框焦点事件被调用两次并且执行 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(); } },
希望有帮助