ext树的右键菜单控制--去掉右键菜单
?? ? ?工作需要,构建了一棵EXT JS的树,tree
?? ? ?实际的需求是,有的节点需要右键菜单,有的节点不需要右键菜单,但是从网上找来的模板中所有的节点都会有右键菜单。
?? ? ?具体右键菜单的代码如下:
contextmenu : function(node, e) {//右键点击节点,会运行的函数parent.tree.parentId.value = node.attributes.id;node.select();var c = node.getOwnerTree().contextMenu;c.removeAll();c.contextNode = node;c.showAt(e.getXY()); if(node.attributes.TYPE=="xx"){ c.add("menu1"); } else { //不添加右键菜单 } }?
?? ? ?但是实际情况是按照以上的代码,就算是node的属性TYPE不是xx,右击过去,也会显出一个扁平的空框框,非常难看而且没有内容。
?? ? ?经过对代码的作用的分析,知道右键菜单显示的控制主要是:c.showAt(e.getXY()); 这一句。这一句决定了无论c是否add了菜单项,都会show一个菜单容器出来在页面上。
?? ? ?所以将c.showAt(e.getXY());这一句剪切到了 if(node.attributes.TYPE=="xx")中,就完成了对某些节点的右键菜单是否显示的控制。
?? ? ?特此记录,以备大家有相同的需要。
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?elemark
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2010年11月9日11:11:39
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??http://elemark.iteye.com
?