2010-01-24 5 views
4

우리는 런타임에 메뉴 항목에 대한 아이콘 만 알고있는 경우가 있습니다. diji.MenuItem에 대해 iconClass 매개 변수가 있다는 것을 알고 있지만, 런타임에 CSS 규칙에 dojox.html.insertCssRule을 동적으로 추가하지 않으면 약간의 도움이됩니다. 더 좋은 방법이 있어야합니다!dijit.MenuItem에 대한 아이콘을 설정

myMenuItem.iconNode.style.cssText = "background-image: url(...); width: 16px, height: 16px";

+0

http://robrobbins.info/?p=372 –

답변

3

물론, 더 좋은 방법이 적합하지 않지만, 같은있다 : 여기

우리가 무엇을하려고의 예입니다 이전 버전의 dojo의 경우. 새로운 구문에서 클래스는 같은 일을 수행하기 위해 다음과 같이 정의 할 수 있습니다 :


define("Foo/FooMenuItem", ['dojo', 'dijit/dijit', "dojo/_base/declare", "dijit/MenuItem"], 
    function(dojo, dijit, declare, MenuItem) { 

     return declare("Foo.FooMenuItem", [MenuItem], { 
      iconSrc: "unknown", 
      _setIconSrcAttr: {node: "iconNode", type: "attribute", attribute: "src" } 
     }); 
    }); 

간단한 Foo.FooMenuItem 클래스는 그럼 그냥 클래스가 초기화 될 때 "아이콘"속성 집합을 가질 수를, 값 세트는 아이콘을 위해 제출 된 img src에 삽입됩니다. 다음과 같이 참조 할 수 있습니다.


pMenu.addChild(new Foo.FooMenuItem ({ 
    label: "clocks", 
    iconSrc: "image/clocks.png", 
    onClick: dojo.hitch(core.editor, core.editor.createNewApp) 
})); 
3

http://robrobbins.info/?p=372에 대한 참조는 다음과 같습니다

pMenu = new dijit.Menu({ 
    targetNodeIds: ["NEW_APP"], 
    leftClickToOpen: true 
}); 

pMenu.popupDelay = 100; 

pMenu.addChild(new dijit.PopupMenuItem({ 
    label: "clocks", 
    iconSrc: "image/clocks.png", 
    onClick: dojo.hitch(core.editor, core.editor.createNewApp) 
}));
관련 문제