`
elemark
  • 浏览: 231345 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ext树的右键菜单控制--去掉右键菜单

    博客分类:
  • JAVA
阅读更多

      工作需要,构建了一棵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

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics