dTree無限級目錄樹和JQuery同步ajax請求

之前都是用JQuery對樹的支持來實現目錄樹的,近來閒來無事就弄了下dTree,感受其無限級目錄仍是挺好的,並且它的使用也比較方便,基本上 就是先把要用的js文件即dtree.js和css文件dtree.css引入,另外就是它默認的圖片,固然這些圖片都是能夠本身指定的,它的css樣式 也能夠本身改變的!css

關於dTree就先談談它的node,dTree的node的構造方法能夠指定下列參數,html

            id //惟一標識,數字型
            pid//父節點的id,若是是根結點那就只能是-1,通常來說只有一個最頂層的根結點
            name//結點的名字,字符串類型,在頁面上顯示出來的標籤.
            url//字符串類型,表示當點擊該葉子結點的時候訪問哪一個URL.
            title//title,字符串類型,鼠標進入時顯示的字符串.
            target//字符串類型,超連接的目標位置.
            icon //字符串類型,表示該結點圖標的圖片路徑,不指定則使用默認的
            iconOpen//結點打開時候的圖片路徑,不指定則使用默認的
            open//boolean類型,表示初始狀態是不是打開的 java

mytree.add(1, 0, 'My node', 'node.html', 'node title', 'mainframe', 'img/musicfolder.gif');


有了node之後就是構建樹了node

//引入了dtree.js後,就可使用new dTree()了
myTree = new dTree();//這樣就新建了一個dTree了struts2的interceptor實現權限管理
//新建了dTree之後就是把剛建的node給添進去了,
mytree.add(1, 0, 'My node', 'node.html', 'node title', 'mainframe', 'img/musicfolder.gif');ajax

在最後還能夠指定一些配置參數:數據庫

             target//全部結點的目標
            folderLinks//非葉子結點是否也是能夠連接的,默認是true
            useSelection//結點是否能夠被選擇,默認true.
            useCookies//是否使用cookies來記錄當前樹的狀態,默認是true
            useLines//是否用線來畫樹,默認是true
            useIcons//是否使用圖標來構建樹,默認是true
            useStatusText//是否在狀態欄顯示結點的名字,而不是在URL的位置顯示,默認是false
            closeSameLevel//是否同時只能有一個文件夾處於打開狀態,默認爲false,當爲true的時候關閉全部的文件夾和打開全部的文件夾將不會起做用
            inOrder//是否先添加父結點再添加子節點,  默認爲false,爲true能夠加快加載速度
            
            //例如:
            mytree.config.target = "mytarget";json

像這些結點的相關信息,咱們通常都是要從後臺來獲得的,或者從數據庫,或者從配置文件,若是加上覆雜的權限控制就得每次都到後臺取一次了,
  而從後臺獲得這些數據的話通常經常使用的是以ajax請求取得json格式的數據,而後在頁面上就能夠很是方便的使用了,可是使用ajax請求的時候
  就會有一個問題出現了,那就是通常的ajax請求都是異步的,這時候,頁面不會等ajax的請求返回就已經往下面執行了,等ajax請求返回的時候
  頁面已經不能再使用其返回的數據進行操做了,因此這個時候須要使用ajax的同步請求了!ajax的同步請求很簡單隻要在ajax的請求的時候加上一個
  區別於ajax請求類型的參數就好了,通常都是async,像JQuery的用法就是這樣的:$.ajax( {
                url : "module/geneMenu",
                async : false//同步,等這個請求完成後才繼續往下執行,這樣myTree才能使用返回來的數據
            });cookie

使用了ajax的同步請求之後,頁面在解析到ajax請求的時候就會等ajax請求返回之後再繼續往下面執行,這樣就能夠利用
  ajax的返回值來進行對dTree的node的操做了!異步

 

還有一個問題就是咱們經常會利用Frame來將頁面進行佈局成左邊是menu欄,而右邊是主頁面,上邊是一些基本信息這樣的結構
  這樣咱們就須要在點擊menu欄的葉子結點時,在mainFrame裏面顯示請求返回後的內容,其實要實現這個要求挺簡單的,只須要
  把node的target指定爲mainFrame的name便可
async

相關文章
相關標籤/搜索