2013-03-25 4 views
0

Один из вариантов меню считается «типичным». Как и в большинстве людей, нажмите на первый пункт меню. Но есть второй вариант для внешних дел. Поэтому я хотел бы, чтобы меню кнопок имело параметр по умолчанию для тех, которые не хотят дважды щелкнуть по «типичной» опции. Я думал, что обработчик для кнопки будет:Extjs Кнопка click вызывает menuitem по умолчанию

  • прекратить показ меню (я пытался event.stopEvent() без успеха.)
  • вызова обработчика для одного из пунктов меню.

Но вы все равно можете получить доступ к меню, если вы щелкнули значок выпадающего списка, который появляется рядом с кнопкой.

Fiddle here.

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'); 
    } 
}); 
+1

Какой смысл иметь меню, если вы просто собираетесь вызвать один из элементов напрямую? Почему бы просто не сделать обработчик кнопки? –

+0

Я хочу, чтобы там было меню опций (которое доступно, щелкнув значок выпадающего списка), но там будет вариант по умолчанию для ленивых. – Andrea

ответ

1

В этом случае вы должны использовать кнопку разделения:

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

меню будет отображаться только при нажатии кнопки со стрелкой часть в. Когда вы нажмете на часть кнопки, она запустит обработчик кнопки и не отобразит меню.

Смежные вопросы