一个树形菜单静态化到客户端成一个数组的测试js:
var tree_arr=[[1,'新浪播客','0'],[2,'tom','0'],[3,'网易播吧','0'],[4,'新浪播客子博客1','1'],[5,'新浪播客子博客2','1']];
var root=new Ext.tree.TreeNode({
id:"root",
text:"控制面板",
expanded:true
});
var mytree=new Ext.tree.TreePanel({
el:"tree",
animate:true,
title:"Extjs静态树",
collapsible:true,
enableDD:false,
enableDrag:false,
rootVisible:true,
autoScroll:true,
trackMouseOver:false,//false则mouseover无效果
useArrows:false,
width:150,
lines:true
});
function get_root()
{
var result=new Array();
/*
for(var i=0; i<tree_arr.length; i++)
if(0 == tree_arr[i][2])
root.appendChild(new Ext.tree.TreeNode({
id:tree_arr[i][0],
text:tree_arr[i][1]
}));
*/
var j=0;
for(var i=0; i<tree_arr.length; i++){
if(0 == tree_arr[i][2]){
result[j++]=tree_arr[i];
}
}
return result;
}
function get_sub(parentId)
{
var result=new Array();
/*
for(var i=0; i<tree_arr.length; i++){
if(0 != tree_arr[i][0]){
//var temp=Ext.tree.getNodeById(tree_arr[i][0]);
alert(mytree.getNodeById('1'));
mytree.getNodeById('1').appendChild(new Ext.tree.TreeNode({
id:tree_arr[i][0],
text:tree_arr[i][1]
}));
}
}
*/
var j=0;
for(var i=0; i<tree_arr.length; i++){
if(parentId==tree_arr[i][2]){
result[j]=tree_arr[i];
j++;
}
}
return result;
}
//生成标签页
var tab = new Ext.TabPanel({
region:'center',
deferredRender:false,
activeTab:0,
resizeTabs:true, // turn on tab resizing
minTabWidth: 115,
tabWidth:135,
enableTabScroll:true
});
Ext.onReady(function(){
//layout
var viewport = new Ext.Viewport({
layout:'border',
items:[
new Ext.BoxComponent({
region:'north',
el: 'north',
height:80
}),new Ext.BoxComponent({
region:'south',
el: 'south',
height:25
}),{
region:'west',
id:'west-panel',
split:true,
width: 200,
minSize: 175,
maxSize: 400,
margins:'0 0 0 0',
layout:'accordion',
title:'系统菜单',
collapsible :true,
layoutConfig:{
animate:true
},
items: [
{
title:'EXT控件使用',
border:false,
html:'<div id="tree-div" style="overflow:auto;width:100%;height:100%"></div>'
//iconCls:'nav'
}]
},
tab//初始标签页
]
});
//设置树形面板
var Tree = Ext.tree;
// set the root node
var root = new Tree.AsyncTreeNode({
text: 'Ext JS',
draggable:false,
id:'root'
});
var resultRoot=get_root();
for(var i=0;i<resultRoot.length;i++){
var rootNode=new Ext.tree.TreeNode({
id:resultRoot[i][0],
text:resultRoot[i][1]
});
var resultSub=get_sub(resultRoot[i][0]);
for(var j=0;j<resultSub.length;j++){
var subNode=new Ext.tree.TreeNode({
id:resultSub[i][0],
text:resultSub[i][1]
});
rootNode.appendChild(subNode);
}
root.appendChild(rootNode);
}
var contextmenu=new Ext.menu.Menu({
id:'Context',
items:[{
text:'R_menu1',
handler:function(){
alert('click');
}
}
]
});
mytree.on('contextmenu',function(node,e){
e.preventDefault();
node.select();
contextmenu.showAt(e.getXY());
});
mytree.setRootNode(root);//设置根节点
mytree.render();
});
Ext.fly(A) is null 开始的时候一直提示这个错误~
后来发现firebug一直提示这个错误,每次调试的时候清空下cache比较好~~~