最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Ext Js生成動態(tài)樹實例代碼

 更新時間:2008年09月08日 21:41:28   作者:  
今天在公司幫同事寫了個用Ext Js生成動態(tài)樹的Demo,在這里分享一下,也好供以后自己查閱。
一. 需求

要求生成一顆部門樹,初始只列出根部門
當點擊一個部門節(jié)點時,動態(tài)載入該部門下的直屬子部門,并展開該部門節(jié)點
部門節(jié)點要求支持右鍵單擊事件,當點擊右鍵時,列出相關操作菜單
二. 關鍵類

這里主要涉及Ext JS的兩個類:

Ext.tree.TreeNode
Ext.menu.Menu
相關API可以參考:http://extjs.com/deploy/ext/docs/

三. 代碼示例

1. 先看一下測試頁面
復制代碼 代碼如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Reorder TreePanel</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-all.js"></script>
<script type="text/javascript" src="reorder.js"></script>


<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../shared/examples.css" />
<link rel="stylesheet" type="text/css" href="../shared/lib.css" />


<script type="text/javascript">
/**************
onload事件
***************/
window.onload=function(){
createTree(3);
}
</script>


</head>
<body>
<script type="text/javascript" src="../shared/examples.js"></script>
<h1>現(xiàn)在要生成一顆動態(tài)樹</h1>
<div id="container">
</div>
</body>
</html>

2. 再看一下生成樹的函數(shù)
復制代碼 代碼如下:

/***********************************
創(chuàng)建樹
by chb
************************************/
function createTree(n){


Ext.QuickTips.init();
var mytree=new Ext.tree.TreePanel({
el:"container",
animate:true,
title:"Extjs動態(tài)樹",
collapsible:true,
enableDD:true,
enableDrag:true,
rootVisible:true,
autoScroll:true,
autoHeight:true,
width:"30%",
lines:true
});

//根節(jié)點
var root=new Ext.tree.TreeNode({
id:"root",
text:"集團公司",
expanded:true
});


for(var i=0;i<n;i++){
var sub1=new Ext.tree.TreeNode({
id:i+1,
text:"子公司"+(i+1),
singleClickExpand:true,
listeners:{
//監(jiān)聽單擊事件
"click":function(node){
myExpand(node);
},
//監(jiān)聽右鍵
"contextmenu":function(node,e){
//列出右鍵菜單
menu=new Ext.menu.Menu([
{
text:"打開當前節(jié)點",
icon:"list.gif",
handler:function(){
myExpand(node);
}
},
{
text:"編輯當前節(jié)點",
icon:"list.gif",
handler:function(){
alert(node.id);
}
},
{
text:"刪除當前節(jié)點",
icon:"list.gif",
handler:function(){
alert(node.id);
}
}]);
//顯示在當前位置
menu.showAt(e.getPoint());
}
}
});
root.appendChild(sub1);
}
mytree.setRootNode(root);//設置根節(jié)點
mytree.render();//不要忘記render()下,不然不顯示哦
}

3. 展開子節(jié)點的代碼
復制代碼 代碼如下:

/******************************************
展開節(jié)點
******************************************/
function myExpand(node){
if(node.id=='1'){
if(node.item(0)==undefined){
node.appendChild(new Ext.tree.TreeNode({
id:node.id+'1',
text:node.text+"的第一個兒子",
hrefTarget:"mainFrame",
listeners:{//監(jiān)聽
"click":function(node,e){
expand2(node)
}
}
}));
}


node.expand();


}else if(node.id=='2'){
node.appendChild(new Ext.tree.TreeNode({
id:node.id+'2',
text:node.text+"的第一個兒子",
hrefTarget:"mainFrame",
listeners:{//監(jiān)聽
"click":function(node){
expand2(node)
}
}
}));
}else{
alert(node.id+"沒有子部門了");
}
}

讀者可以自己運行一下如上代碼,會發(fā)現(xiàn)如下現(xiàn)象:無論點擊“子公司1”多少次,只會列出“子公司1的第一個兒子”一個節(jié)點,而每點擊一次“子公司2”,就會多出一個“子公司2的第一個兒子”節(jié)點,這是為什么呢?

因為每次點擊都會激發(fā)myExpand函數(shù),而“子公司1”上加了node.item(0)==undefined的判斷,這里明白了?
即:如果該部門下沒有子部門,則載入子部門,否則只展開,不重新載入。

好了,就到這里吧,困了,就不詳細解釋了o(∩_∩)o...哈哈

相關文章

  • JavaScript中this機制是如何真正工作的

    JavaScript中this機制是如何真正工作的

    JavaScript中this機制提供了更優(yōu)雅的方式來隱含地“傳遞”一個對象引用,導致更加干凈的API設計和更容易的復用,this既不是函數(shù)自身的引用,也不是函數(shù)詞法作用域的引用,this實際上是在函數(shù)被調(diào)用時建立的一個綁定,它指向什么是完全由函數(shù)被調(diào)用的調(diào)用點來決定的
    2023-11-11
  • JS動態(tài)給對象添加屬性和值的實現(xiàn)方法

    JS動態(tài)給對象添加屬性和值的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狫S動態(tài)給對象添加屬性和值的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • echarts展示區(qū)域地圖添加紋理圖片操作指南

    echarts展示區(qū)域地圖添加紋理圖片操作指南

    這篇文章主要給大家介紹了關于echarts展示區(qū)域地圖添加紋理圖片操作的相關資料,ECharts地圖組件支持使用圖片作為地圖區(qū)域的填充紋理,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • ?javascript數(shù)組中的lastIndexOf方法

    ?javascript數(shù)組中的lastIndexOf方法

    這篇文章主要介紹了?javascript數(shù)組中的lastIndexOf方法,該方法可返回一個指定的字符串值最后出現(xiàn)的位置,在一個字符串中的指定位置從后向前搜索,下文詳細內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • 原生JS實現(xiàn)百葉窗特效

    原生JS實現(xiàn)百葉窗特效

    這篇文章主要為大家詳細介紹了原生JS實現(xiàn)百葉窗特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • zTree獲取當前節(jié)點的下一級子節(jié)點數(shù)實例

    zTree獲取當前節(jié)點的下一級子節(jié)點數(shù)實例

    下面小編就為大家?guī)硪黄獄Tree獲取當前節(jié)點的下一級子節(jié)點數(shù)實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 可視化埋點平臺元素曝光采集intersectionObserver思路實踐

    可視化埋點平臺元素曝光采集intersectionObserver思路實踐

    這篇文章主要為大家介紹了可視化埋點平臺元素曝光采集的思路—intersectionObserver的實戰(zhàn)經(jīng)驗詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • JS 獲取頁面尺寸的方法詳解

    JS 獲取頁面尺寸的方法詳解

    通過 JS 獲取頁面相關的尺寸是比較常見的操作,尤其是在動態(tài)計算頁面布局時,今天我們就來學習一下幾個獲取頁面尺寸的基本方法,需要的朋友可以參考下
    2023-09-09
  • javascript正則表達式基礎知識入門

    javascript正則表達式基礎知識入門

    很長時間沒看正則表達式了,碰巧今天用到,溫故知新了一把,這里記錄下來,分享給大家,都是些基礎的知識,重點給大家講解的是正則表達式中4種常用的方法,50% 的舉一反三練習中的原創(chuàng)。
    2015-04-04
  • JavaScript canvas實現(xiàn)九宮格切圖效果

    JavaScript canvas實現(xiàn)九宮格切圖效果

    這篇文章主要為大家詳細介紹了JavaScript canvas實現(xiàn)九宮格切圖效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論

岳普湖县| 咸阳市| 长汀县| 茂名市| 高雄县| 普兰店市| 砚山县| 阿拉善左旗| 中方县| 丹凤县| 台北县| 黄龙县| 阿巴嘎旗| 古交市| 阿克苏市| 银川市| 望谟县| 灵川县| 铜陵市| 尼勒克县| 泸西县| 汝城县| 句容市| 青海省| 北碚区| 长沙县| 普兰店市| 龙陵县| 象山县| 华阴市| 七台河市| 神木县| 五大连池市| 新巴尔虎左旗| 福安市| 德昌县| 天台县| 小金县| 大丰市| 南岸区| 山阳县|