我目前正在使用基于 ExtJS 的菜单系统,遇到一个问题:在最初单击主菜单并重新打开子菜单后单击菜单项时,会出现错误 STATUS_ACCESS_VIOLATION。
详细场景如下:
首次单击:单击主菜单可以毫无问题地打开子菜单。 后续单击:关闭子菜单后,再次单击主菜单然后选择子菜单项会导致 STATUS_ACCESS_VIOLATION 错误。
下面是设置菜单结构并监听点击事件的代码:
javascript
var 菜单结构 = [];
// 菜单结构示例 菜单结构.push({ text: '主菜单 1', // 主菜单项 baseCls: 'gnb_menu_btn', 边距:'0 15 0 0', hide: false, // 控制菜单项的可见性 id: 'menu1', // 主菜单项 ID 父 ID: '0', 填充:'20 0 20 0', menuAlign: 't-b?', 扩展:真实, 菜单: { xtype: 'menu', // 菜单 xtype cls: 'gnb_sub_box', 简单:真实, 扩展:真实, 填充:0, 项目: [ { text: '子菜单 1', // 子菜单项 id: '子菜单1', 听众:{ 单击:函数(){ console.log('点击了子菜单 1'); } } }, { text: 'Sub Menu 2', // 另一个子菜单项 id: '子菜单2', 听众:{ 单击:函数(){ console.log('点击了子菜单 2'); } } } ] } });
var tb = Ext.create('Ext.toolbar.Toolbar', { cls: 'nav_gnb', 填充:'0', 项目:菜单结构 });
问题: 当我单击主菜单项(例如,主菜单 1)时,子菜单会正确打开。但是,关闭子菜单并再次单击主菜单重新打开子菜单后,单击任何子菜单项(如子菜单 1 或子菜单 2)都会触发 STATUS_ACCESS_VIOLATION 错误。
采取的步骤: 我尝试过使用 showAt、destroy 和手动处理可见性,但重新打开菜单后单击子菜单项时仍然出现错误。 我检查了菜单配置或事件侦听器是否存在任何问题,但无法解决错误。
问题: 为什么重新打开菜单后点击子菜单项会出现错误? 是否有任何最佳实践来处理 ExtJS 中的菜单可见性和事件以避免此类错误? 在这种情况下,什么可能导致 STATUS_ACCESS_VIOLATION 错误?
环境: ExtJS版本:v6.2.0.981 浏览器:Chrome 115 操作系统:Windows 10 任何有关如何解决此问题的指导或建议将不胜感激!
任何东西..bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
我们看到同样的事情。但我们可以通过不同的方式触发这个问题。当浏览器更新时,这种情况就开始发生。我们测试了回滚到以前版本的 Chrome,这似乎有效。