ext树的右键菜单统制-去掉右键菜单
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