DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 淺析使用BootStrap TreeView插件實現靈活配置快遞模板
淺析使用BootStrap TreeView插件實現靈活配置快遞模板
編輯:關於JavaScript     

bootstrap-treeview是一款效果非常酷的基於bootstrap的jQuery多級列表樹插件。該jQuery插件基於Twitter Bootstrap,以簡單和優雅的方式來顯示一些繼承樹結構,如視圖樹、列表樹等等。

開發條件:

安裝bootstrap-treeview插件,具體操作見:

bootstrap-treeview

實現功能:

1.一個模板可指定子模板(包含多個地區、價格等)

2.編輯子模板地區時,動態改變tree的地區(其他子模板選中的地區disabled,此模板之前選中的地區默認選中)

3.tree選擇時,父級和子集的聯動(如父級選中子集全部選中,取消一個子集的時候,父級也取消)

4.維護子模板數據(展示選中的地區格式 如(安徽、北京(昌平 回龍觀)) 存儲選中節點)

其他說明

數據源格式:[{text:'展示名稱1',nodes:[{text:'子級'}]},{text:'展示名稱2'}]

bootstrap-trview會動態的為數據源添加nodeId,parentId這兩個屬性(很重要的屬性),可自定義添加其他屬性用來標記當前節點

編輯過程中維護的數據

數組對象templates包含:

1.模板的名稱

2.每個子模板對應的 價格 件數 排序

3.子模板的地區Id、節點id、展示名稱

實現上述數據需要維護的數組和對象

var templates = []; //保存最終儲存的數據
var selectedNodeId = []; //用來存儲單個模板選擇的nodeId 用於展示
var editingTemplate = null; //用於標記正在處理的是第幾個地區模板
var selectedAreaId = []; //保存當前選擇的地區
var selectedAreaName = []; //保存當前選中的地區名稱用於展示
var defaultData = [];//數據源

實現功能一

一個模板指定多個子模板

主要是維護templates[]數組 push進入多個template即可 下面會詳細講解如何維護template

實現功能二(動態修改tree)

原理:通過維護的templates和editingTemplate 拿到當前編輯的子模板數據和其他子模板數據,將當前模板的node默認選中,其他的數據置為disabled

編輯子模板

uncheckAll方法:$('#tree').treeview('uncheckAll', { silent: true });

disAbled方法:$('#tree').treeview('disableNode', [ nodeId, { silent: true } ]);

默認選中的方法$('#tree').treeview('checkNode', [ template.nodeIds[i], { silent: true } ]);

實現功能三:父級和子級的聯動(主要操作在點擊選中和取消選中上面 來分析兩種情況)

第一種 選中

1.選擇父節點 將子節點全部選中

根據父節點返回的nodes得到所有的子節點 並且將子節點全部選中

選中的方法$('#tree').treeview('checkNode', [ nodeId, { silent: true } ]);

可以封裝為一個方法selectAllChildren()

2.如果選中的為子節點

判斷父節點中的子節點是否全部選中如果全部選中則將父節點選中

第二種 取消

1.選中的為父節點,將所有的子節點取消選中

取消選中的方法$('#tree').treeview('uncheckNode', [ nodeId, { silent: true } ]);

2選中的為子節點,判斷父節點中的子節點是否選中 如果選中 則取消選中

判斷是否選中的方法

$('#tree').treeview('selectNode', [ nodeId, { silent: true } ]);

根據獲取到元素獲取是否選中

實現功能四(維護template數據)

1.正在編輯的editingTemplate

2.當前層級選中的所有selectedNodeId

3.展示需要的字符串數組selectedNodeName

3.存儲字符串數組selectedAreaId對應數據庫中的areaId

4.將上面的三個數組存入template,並將template push進入templates

邏輯

1.獲取到所有的被選中的元素

2.遍歷所有的元素 判斷當前節點是否有nodes(即子元素),如果有則直接操作,並改變index,將其子元素全部跳過,將節點名稱保存進areaNames,如"安徽"

3.遍歷所有的元素 如果沒有子元素,取出父級元素如"北京(",將node元素添加至後面,如"北京(昌平區",判斷下一個元素的父節點是否發生改變,如果發生改變則結束維護字符串為"北京(昌平區)",並將其添加至areaNames,繼續遍歷下一個節點

4.其他三個數組在遍歷的同時維護
實現結果展示:

1.主頁面展示:

2.tree展示:

小結

本文提供簡單的實現方案思路,具體的代碼根據業務實現,不足之處不能動態處理數據源,優點bootstrap開放的api接口較多,可自定義實現。

以上所述是小編給大家介紹的使用BootStrap TreeView插件實現靈活配置快遞模板,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved