EXT Menu改变Menu的Layer class之后菜单功能失败的解决办法

ext2中可以改变 Menu的class ,比如不想要前面的竖线,修改方法:

 

 

Menu = function(){
	return{
		menuCreateEl: function(){
			return new Ext.Layer({
	            cls: "x-treemenu",
	            shadow:this.shadow,
	            constrain: false,
	            parentEl: this.parentEl || document.body,
	            zindex:15000
	        });
		}
	}
}();

 

 

修改后,在调用Menu时加上

ctxMenu = new Ext.menu.Menu({
...
})

ctxMenu.createEl = Menu.menuCreateEl;

 

修改后,菜单功能失效,点击任何菜单项都没有任何反应,解决方法:

 

重写Ext.menu.MenuMgr类中的onMouseDown方法

将 e.getTarget(".x-treemenu") 中的class名改为之前定义的

 

 if(lastShow.getElapsed() > 50 && active.length > 0 && !e.getTarget(".x-treemenu")){

           hideAll();

       }

 

你可能感兴趣的:(ext)