2013-12-20 60 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()'確實希望menuitem做什麼? – 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:無法調用undefined的方法'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