Dynatree使用

来源:http://www.cnblogs.com/joystrong/archive/2016/11/18/5975419.html
-Advertisement-
Play Games

最近用到了Dynatree的樹形結構,記錄一下它的用法。 需求: 1.jquery.js 2.jquery-ui.custom.js 3.jquery.cookie.js 下載dynatree,放到資源路徑下,在頁面引入ui.dynatree.css,jquery.dynatree.js。 以上是基 ...


最近用到了Dynatree的樹形結構,記錄一下它的用法。

需求:

1.jquery.js

2.jquery-ui.custom.js

3.jquery.cookie.js

下載dynatree,放到資源路徑下,在頁面引入ui.dynatree.css,jquery.dynatree.js。

$(function(){
    $("#tree").dynatree({   //tree生成樹形結構所在的節點的ID如<div id="tree"></div>
        title:"樹形結構",    //樹的名字
minExpandLevel:1, //1:根節點不能展開
imagePath:'', //文件夾節點圖片路徑
children:'json', //從這個(json,html,xml)對象初始化一個樹結構
initId:'treeUl', //從一個ID為treeUl的ul元素初始化一個樹結構
initAjax:[], //非同步請求伺服器數據初始化一個樹結構
autoFocus:true, //true:當父節點展開或懶載入時,自動選中第一個子節點
keyboard:true, //true:支持鍵盤切換節點
persist:false, //true:保存展開狀態到cookie中
autoCollapse:flase, //true:當一個節點是展開的,自動摺疊其他兄弟節點
clickFolderMode:3, //1:activate,2:expand,3:activate and expand
activeVisible:true, //true:確保活動的節點是可見的(展開的)
checkbox:false, //true:顯示選擇框
selectMode:2, //1:單選,2:多選,3:多層多選
fx:null, //動畫,null或{height:"toggle",duration:200}
noLink:false, //用<span>標簽代替所有<a>標簽
onClick:null, //點擊會產生 focus,expand,activate,select 事件
onDblClick:null, //
onKeydown:null, //產生keyboard navigation 事件同時產生(focus,expand,activate)事件
onKeypress:null, //
onFocus:null, //當一個節點獲得焦點時觸發
onBlur:null, //當一個節點失去焦點時觸發
     debugLevel:0, //調試模式,0.關閉1.normal 2.debug }); });


以上是基本用法。

從伺服器返回數據的格式一般為json:[{title:"一層節點"},{title:"一層節點",isFolder:true,children:[{title:"二層節點"},{title:"二層節點",selfField:"自定義自定義欄位"}]}]

json還可以添加自定義欄位。

onClick事件:onClick:function(node){node.data.selfField}

通過node.data.selfField可以獲取從伺服器傳過來的欄位的值,其他事件類似。

 

補充:

$("#tree").dynatree("getTree")獲取樹的實例對象

$("#tree").dynatree("getTree").reload()重新載入樹

如果需要修改initAjax的URL的參數或不同的URL,在reload之前修改參數就好了

$("#tree").dynatree("option","initAjax",{url:'xxxxxxx'})//修改initAjax參數,重寫URL

$("#tree").dynatree("getTree").reload()

如果要隱藏一級所有的checkbox,需要在生成樹的時候設置hideCheckbox=true,設置checkbox不可選unselectable=true

獲取所有選中的項var select = $("#tree").dynatree("getTree").getSelectedNodes()

設置選中或不選中

for(var se in select){

 select[se].select(false)//false不選中,true選中

}

如果顯示了checkbox,點擊時會觸發click事件,為了把選中事件和點擊事件分開,在onClick方法中需要判斷當前時間觸發的是否是title

if(node.getEventTargetType(event)=='title'){

  //如果點擊的是文本

}

onPostInit當樹載入完畢時會觸發,可以執行一些初始化操作,比如獲取上一次活動的選項(需要設置persist=true)

this.getActiveNode()

Dynatree線上文檔


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ...
  • 初學JavaScript的時候有人會認為JavaScript不是一門面向對象的語言,因為JS是沒有類的概念的,但是這並不代表JavaScript沒有對象的存在,而且JavaScript也提供了其它的方式來解決面向對象的問題。所以JavaScript也是一門面向對象的語言。 面向對象僅僅是一個概念或者 ...
  • 總結一下一些知識。 1.利用CSS穿透 常見發生場景:假如我們需要通過input,type=‘file’來上傳文件,而這個input的預設樣式,可以說是非常地“不人道”。所以我們希望通過一張圖片,與這個input大小一樣,位置一致地蓋在上面。這個時候,顯然,這個時候點擊圖片,input是不會起作用的 ...
  • 一:移動端基礎事件 1.touchstart 手指觸摸 == mousedown 2.touchend 手指抬起 == mouseup3.touchmove 手指抬起 == mousmovetouch事件 在 chrome的模擬器下,部分版本 通過on的方式來添加事件無效所以在移動端一般都使用如下方 ...
  • 引子 瀏覽器URl地址,上網一定會用到,但是瀏覽器地址有中文或者瀏覽器url參數操作的時候,經常會用到encodeURIComponent()和decodeURIComponent()以及encodeURI()等等。關於瀏覽器參數操作,請看文章http://www.haorooms.com/post ...
  • “Prototype”機制是個半成品OOP,有些文章說這玩意當初為了“簡單(編寫)、容易(學習)”而發明的,但web前端技術發展到今天我們看到,JS顯然是需要OOP的,或者說web前端程式規模增長,需要OOP等更強大、方便的特性、機制。真要簡單容易,你乾脆不要提供能讓人實現繼承的什麼prototyp ...
  • 構造函數、原型鏈: ...
  • 在我們使用php導入和導出excel表格的時候經常會見到 enctype="multipart/form-data",哪他的作用是什麼呢? ENCTYPE="multipart/form-data"用於表單里有圖片上傳。 <form name="userInfo" method="post" act ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...