awelkije 2010-05-26 20:06
浏览 224
已采纳

請問extjs tree 問題

[code="java"]var menuTree = new Ext.tree.TreePanel({
region:'west',
title:'選單',
width:180,
minSize:150,
maxSize:200,
split:true,
autoScroll:true,
autoHeight:false,
collapsible:true,
rootVisable:true,
root:new Ext.tree.TreeNode({
id:'root',
text:'訪客人數',
draggable:false,
expanded:true
})

});

menuTree.root.appendChild(new Ext.tree.TreeNode({
id:'htmlPanel',
text:'選單A',
listeners:{
'click':function(node, event) {
event.stopEvent();
var n = contentPanel.getComponent(node.id);
if (!n) { //判断是否已经打开该面板
n = contentPanel.add({
'id':node.id,
'title':node.text,
closable:true, //通过html载入目标页
html:''
});
}
contentPanel.setActiveTab(n);
}
}
}));

menuTree.root.appendChild(new Ext.tree.TreeNode({
id:'htmlPanel2',
text:'選單B',
listeners:{
'click':function(node, event) {
event.stopEvent();
var n = contentPanel.getComponent(node.id);
if (!n) { //判断是否已经打开该面板
n = contentPanel.add({
'id':node.id,
'title':node.text,
closable:true, //通过html载入目标页
html:''
});
}
contentPanel.setActiveTab(n);
}
}
}));

menuTree.root.appendChild(new Ext.tree.TreeNode({
id:'htmlPanel3',
text:'選單C',

listeners:{
'click':function(node, event) {
event.stopEvent();
var n = contentPanel.getComponent(node.id);
if (!n) { //判断是否已经打开该面板
n = contentPanel.add({
'id':node.id,
'title':node.text,
closable:true, //通过html载入目标页
html:''
});
}
contentPanel.setActiveTab(n);
}
}
}));[/code]
請問要如何精簡掉重複的程式碼

選單A 會開啟 a.html
選單B 會開啟 b.html
選單C 會開啟 c.html

  • 写回答

1条回答 默认 最新

  • fireinjava 2010-05-26 21:10
    关注

    你的树可以通过json一下子加载或逐级加载,不用一个节点一个节点加个root。
    然后树有个click事件,
    tree.on("click", function(node) {
    addTab(node);//这边写加入到tabpanel的代码,id与url的可以从node的属性来
    });

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料