一个树形菜单静态化到客户端成一个数组的测试js:
后来发现firebug一直提示这个错误,每次调试的时候清空下cache比较好~~~
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 开始的时候一直提示这个错误~
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();
});
后来发现firebug一直提示这个错误,每次调试的时候清空下cache比较好~~~