0

菜单选项之一被认为是“典型的”。就像大多数人会点击第一个菜单项一样。但是对于那些外部情况,还有第二种选择。因此,我想要一个按钮菜单,对于那些不想为“典型”选项单击两次的人来说,它有一个默认选项。我在想按钮的处理程序会:

  • 停止显示菜单(我试过event.stopEvent()但没有成功。)
  • 调用菜单项之一的处理程序。

但是,如果您单击按钮旁边出现的下拉图标,您仍然可以访问该菜单。

在这里拉小提琴。

Ext.create('Ext.button.Button', {
    text: 'Pick One',
    menu: {
        items: [{
            text: 'Thing 1!',
            handler: function () {
                alert('foo');
            }
        }, {
            text: 'Thing 2!',
            handler: function () {
                alert('bar');
            }
        }]
    },
    handler: function (theButton, event) {
        //stop the menu from showing
        //event.stopEvent(); //try to stop showing menu, but no luck

        //invoke the handler for menu item 1
        //try to get at handler for menuitem programmatically
        //theButton.menu.items.getAt(0).??? 

        //i'd settle for hard-coding the function
        //alert('foo'); 
    }
});
4

1 回答 1

1

在这种情况下,您应该使用拆分按钮:

http://docs.sencha.com/ext-js/4-2/extjs-build/examples/build/KitchenSink/ext-theme-neptune/#split-buttons

仅当您单击箭头部分时才会显示菜单。当您单击按钮部分时,它将触发按钮处理程序并且不显示菜单。

于 2013-03-26T11:35:27.243 回答