今天在做项目的时候用到树菜单。因为项目是用EXT 做的前端。而今天在为一个树菜单添加右键菜单的时候,发现连续点击后出现重复菜单选项
如图: 第一次点击,菜单正常:
第二次点击:出现两次添加网点的菜单。
纠结了一上午。才发现每次点击之后没有销毁菜单。所以每次进行点击之后在原先的基础上再添加了一次!
看代码:
var root=new Ext.tree.AsyncTreeNode({ id: '0', text: '省会', expanded: true }); var dTree = new Ext.tree.TreePanel({ id: 'myDynamicTree', title: '区域', border:false, rootVisible : false, autoWidth: true, autoHeight: true, collapsible: true, autoScroll:true, loader: new Ext.tree.TreeLoader({ dataUrl: "/Util/Tree.aspx" }), root: root, listeners: { 'click': function(node, e) { store.setBaseParam('ID', node.id); store.load({ params: { start: 0, limit: 20} }); } } }); //定义右键菜单 dTree.on("contextmenu", rightclickFuntion); function rightclickFuntion(node, e) { e.preventDefault(); rightClick = new Ext.menu.Menu({ id :'rightClickCont', closeAction:'hide', items : [{ id:'rMenu1', icon:'/Images/icons/add.png', text : '添加网点', //增加菜单点击事件 handler:function(){ Customer.show(); Ext.getCmp('Area').setValue(node.text); } }] }); rightClick.showAt(e.getXY()) //以下进行销毁 rightClick.on("beforehide",function(e){ this.destroy(); }); }