我有一个按钮,一旦点击,将展开菜单项,我希望能够通过java脚本控制台以编程方式单击这些菜单项之一。下面是单击该按钮所需的内容,但需要一些有关单击Ext.menu.Menu的帮助
var fireButton=Ext.ComponentQuery.query('button[itemId=buttonID]')[0]; //find button id
fireButton.fireEvent('click'); //open button/submenuvar ok = Ext.ComponentQuery.query('menuitem');//多余的菜单项
//如何点击菜单项??
这是我的菜单:
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!发布于 2015-04-16 02:04:46
我希望这个小提琴在某种程度上是你想要的-
https://fiddle.sencha.com/#fiddle/lai
注意,我在一个动态创建的项中提供了cls: 'test',然后使用Ext.query(".test");获取该项。
您还可以使用以下查询搜索菜单项-
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')
}
}
}发布于 2015-04-16 01:58:20
xtype:menuitem有一个名为-down的方法,它会让你得到第一个孩子。我不确定您使用的是哪个版本,所以我链接到最新的文档;但是,4.x也有这种方法。
值得注意的是,down还可以将选择器作为参数。
对于ex (在设置了itemid的位置使用cmp ):
this.down("#itemidvaluehere")编辑
在显示菜单的更新后更新:
我会在控制台中像这样尝试:
var mn=Ext.ComponentQuery.query("menu")[0]
mn.items.filter('text','OK').fireEvent('click');https://stackoverflow.com/questions/29654630
复制相似问题