我有一个包含3个项目的菜单。如果某个条件为真,我想在呈现页面之前模拟项目单击,例如设置要选择的默认操作。我动态创建菜单。
Store.each(function(n) {
var rec = n;
var menuItem = new Ext.menu.Item({
text: rec.data.name,
value: rec.data.url,
});
Menu.add(menuItem);
//if some condition set item as if it was clicked(selected)
});
我想将菜单中的某个项目设置为处于活动状态,就像点击它一样。
答案 0 :(得分:0)
如果您使用.fireEvent()
方法,则可以在菜单项上触发click
事件。
所以,
if(some condition){
menuItem.fireEvent('click');
}
此外,您需要在menuItem中使用一个侦听器来捕获此事件
var menuItem = new Ext.menu.Item({
text: "menu Item",
listeners:{
click:function(){ alert("you clicked the menu item"); }
}
});
这是一个工作示例: http://jsfiddle.net/9Lpg7/
最后,我想补充说fireEvent()
我不是完全必要的。由于menuItem具有handler
配置,您可以在其他地方简单地定义一个函数,并将其用作menuItem处理程序,并在条件为真时调用它。
var myClickFunction = function(){ alert("cooler way"); }
var menuItem = new Ext.menu.Item({
text: "menu Item",
handler:myClickFunction
});
if(some condition){
myClickFunction();
}