今天在做项目的时候用到树菜单。因为项目是用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();
});
}