如何检测Ext.menu.Menu关闭或失焦状态并执行对应操作?
要实现菜单关闭或失焦时执行特定操作,直接监听Ext.menu.Menu的对应事件即可:
- close事件:菜单完全关闭时触发,覆盖所有关闭场景(点击菜单外部、调用
close()方法等) - blur事件:菜单失去焦点时触发,当用户点击页面其他非菜单元素导致菜单失焦时会触发该事件
修改你的示例代码,添加事件监听逻辑:
Ext.create('Ext.menu.Menu', { width : 100, margin : '0 0 10 0', floating : false, renderTo : Ext.getBody(), items : [ { text : 'regular item 1' }, { text : 'regular item 2' }, { text : 'regular item 3' } ], listeners: { // 菜单关闭时执行自定义操作 close: function(menu) { console.log('菜单已关闭'); // 此处添加你的业务逻辑 }, // 菜单失焦时执行自定义操作 blur: function(menu) { console.log('菜单已失焦'); // 此处添加你的业务逻辑 } } });
如果需要对关闭操作做前置判断或区分触发源,可以额外监听beforeclose事件,但多数场景下直接使用close和blur事件就能满足需求。
内容的提问来源于stack exchange,提问作者user2829650
相关产品推荐
相关产品推荐

