说明:本人做Ext tree的时候,实现鼠标右键,编辑节点信息。但是,treeEditor默认的点击节点的时候,调用它自身的编辑事件。
于是,我就想禁止treeEditor默认的编辑事件。在tree中添加监听,方法如下:
// TreePanel
var tree = new Ext.tree.TreePanel({
id : 'device-tree',
title : '设备树',
root: root,
region : 'west',
animate : true,
enableDD : true,
containerScroll : true,
loader : new Ext.tree.TreeLoader({ // 加载树
dataUrl : 'tree.json'
}),
listeners: {
// 禁止编辑
beforeclick: function(a,b) {
if(this.getSelectionModel().isSelected(a)){
return false;
}
}
},
renderTo: 'tree-div',
height: 300,
width: 250,
lines : true,
containerScroll : false,
border : true
});
至于为什么这么做,需要参考ext-all.js中treeEditor源码。我从来觉得Ext的API就是垃圾,所以有问题,我直接找源代码。
注意,本人用的是Ext2.2.1。