jstree是一款功能強大的插件。官網地址http://www.jstree.com/
$('#jstree').jstree({ "core" : { "animation" : 0, "themes" : { "dots": true,"icons":true ,"stripes":false}, "check_callback" : true, "multiple" : false, 'data' : data }, "types" : { "#" : { "max_children" : 5, "max_depth" : 11 , }, "default" : { "icon" : "false", "valid_children" : ["default","text"] }, "text" : { "icon" : "false", "valid_children" : [] } }, "plugins" : [ "state", "types", "wholerow" ] });
$.jstree.defaults.core 級有很多api,可以在初始化時設置。
如果對樹的分層有要求,特別是葉子節點作為文檔,父節點作為文件夾這類要求時,要對type做出設置。
-------------------------------------------------------------------------------------------------
max_children
當前節點最多擁有的孩子樹。不設置或設置為-1代表無窮。max_depth
當前節點最多能含有的子節點。如1代表有孩子節點,沒有孫子節點。不設置或設置為-1代表無窮。valid_children
一個string組成的數組。代表這些string類型可以含有孩子節點.不設置或設置為-1代表無窮。icon
a 一個 string,可以是路徑或者className。如果用當前目錄下的img,路徑設為./xxx.png,不然會被設置為class。省略的話會用default的icon作為你的theme
There are two predefined types:
#
代表根節點的id.default
所有沒設定的屬性都按照default來.
-------------------------------------------------------------------------------------------------
在types里,我為#設置了最深層次為11,給default設置了可以擁有default和text的子節點,給text子節點設置為空。這樣新建一個text節點就不能再建立子節點了。
由於項目要求不需要icon,所以把icon設定為false。
項目要求折疊樹設置為 + 和 - 號,我們可以改變style.min.css的jstree默認css文件,插入我們自己的圖片。它默認的圖標是放在一張大圖里的,通過background的position來定位。要小心icon和折疊處的圖在一起,改變其中一個可能會影響到其他的。可以根據他們所處的class增加一些css源文件代碼。
plugins是jstree的插件array。它的插件可以實現拖拽等功能。需要添加的插件放入這個array就可以了。
--------------------------------------------------------------------------------------------------
create,rename,remove,upmove,downmove
var ref = $('#jstree').jstree(true), sel = ref.get_selected();
ref是獲取整個jstree(不懂怎么描述。。。api里的很多都要以ref開頭);
ref.get_node(sel)獲取sel節點
ref.delete_node(sel);刪除節點
sel = ref.create_node(sel, {"type":"text"}); 新建節點