2

現在、キーボード ショートカットを押してコンテキスト メニューを開いています。

コンテキスト メニューの特定のメニュー項目にフォーカス (および選択/強調表示) するにはどうすればよいですか? そのため、return キーを押すことでアイテムのハンドラーを実行できます。ExtJS 4.1 を実行しています。

これは私が現在やっていることです:

myMenu.showBy(divElement); // divElement is a DOM object
myMenu.items.items[2].focus(); // focus on 3rd menu item
myMenu.doConstrain(); // move floating component into a constrain region

それでも、フォーカスはメニュー要素自体に維持されます。

4

1 に答える 1

2

ソースを調べると、これは次のsetActiveItem()メソッドを使用して行われていることがわかります。

var the_menu = Ext.create('Ext.menu.Menu', {
  items: [
    {
      itemId: 'foo',
      text: 'Foo'
    },
    {
      itemId: 'bar',
      text: 'Bar'
    }
  ]
}).showBy(document.getElementById('some_div'));

the_menu.setActiveItem(the_menu.down('#bar'));

ただし、このメソッドはprivatecanActivateItem(item)ありdeactivateActiveItem(andBlurFocusedItem)publicであるため、おそらく単なる見落としであることに注意してください。

于 2012-11-08T13:51:01.400 に答える