我有一个按钮,一旦点击,将展开一个菜单项,我希望能够通过java脚本控制台以编程方式单击其中一个菜单项。这是我点击按钮的方法,但点击Ext.menu.Menu需要一点帮助
var fireButton=Ext.ComponentQuery.query('button[itemId=buttonID]')[0]; //find button id
fireButton.fireEvent('click'); //open button/submenu
var ok = Ext.ComponentQuery.query('menuitem')[0]; //多余的菜单项
//如何点击菜单项?
这是我的菜单:
menuButton: new Ext.menu.Menu({
items: [
{text: 'OK', value: 'ok'},
{text: 'Next', value: 'next'},
],
listeners: {
click: 'onClickMenuButton',
}
onClickMenuButtonItem: function(menu, item){
this.makeVisible(menu, item);
},
makeVisible: function(menu, item){
var menuItem = Ext.getCmp(item.value);
menuItem.isVisible()){
menuItem.setVisible(false);
item.setIconCls('plusSign');
}),
var openMenu = Ext.ComponentQuery.query('button[itemId=buttonID]')[0];
openMenu.fireEvent('click', openMenu);
var clickMenu = Ext.ComponentQuery.query("menu")[0]
clickMenu.items.filter('text','OK').fireEvent('click'); //Don't work!
答案 0 :(得分:1)
我希望这个小提琴有点像你想要的那样 -
https://fiddle.sencha.com/#fiddle/lai
请注意,我在其中一个动态创建的项目中提供cls: 'test'
,然后我使用Ext.query(".test");
来获取该项目。
您还可以使用此查询搜索menuitem -
var item = Ext.ComponentQuery.query('menuitem{text.search( \'Item 1\' )!=-1}');
item[0].fireEvent('click')
菜单项必须将点击监听器注册为 -
{
text: 'Item 1' ,
iconCls: 'add16',
cls: 'test',
listeners: {
click: function(){
console.log('clicked')
}
}
}
答案 1 :(得分:0)