2013-12-20 6 views
5

Я пытаюсь динамически установить активный элемент внутри меню, как если бы он был выбран. Просматривая документацию, я не смог найти решение. Я пытаюсь это сделать при отображении всего меню.Установить активный пункт меню внутри меню

caseListStore.each(function(n) { 

     var menuItem = new Ext.menu.Item({ 
      text: rec.data.name, 
      value: rec.data.url, 

     }); 

     if (rec.data.name == "someCondition)" 
      menuItem.setActive();  //not working 

     casesMenu.add(menuItem); 
}); 
+0

Что означает «не работает»? Отсутствует ')'. – Patrick

+0

Это не проблема. На самом деле ничего не происходит. – Jacob

+0

Что именно нужно, чтобы элемент меню выполнял 'setActive()'? – Patrick

ответ

-2

Лучше использовать метод setActiveItem вашего меню, после этот пункт меню был добавлен в меню

caseListStore.each(function(n) { 

    var menuItem = new Ext.menu.Item({ 
     text: rec.data.name, 
     value: rec.data.url, 

    }); 

    casesMenu.add(menuItem); 

    menuItem.on("afterrender", function(){ 
     if (rec.data.name == "someCondition)" 
      casesMenu.setActiveItem(menuItem); 
    } 



}); 
+0

Спасибо за ответ. Но ничего не происходит. Меню по умолчанию все еще выбирается.Вместо этого я получаю сообщение об ошибке: Uncaught TypeError: Не удается вызвать метод 'scrollIntoView' из неопределенного – Jacob

+0

Вы разрешили визуализацию меню ** до ** установки активного элемента? – Christoph

+0

Меню уже отображается – Jacob

1

Вы пробовали использовать setDisabled?

menuItem.setDisabled(true); 

Если вы используете ExtJS 3.4, пожалуйста, используйте функцию disable.

 menuItem.disable(); 
+0

Зачем использовать setDisabled, если я хочу активировать элемент – Jacob

+0

То же самое думает, y может использовать setActive (true) или setActive (false), разница в том, что setActive fire активирует и деактивирует события или setDisabled не запускает события. – user820688

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