2011-09-21 27 views
7

我正在與jstree一起使用ajax,我發現我的所有節點都有箭頭來展開它,即使那些沒有孩子的節點。在jstree http://www.jstree.com/demo的演示頁面上,情況並非如此。我沒有在演示代碼上看到與我的不同的東西,所以它來自服務器?我有一個參數在「getChildren」方法中回答說在jstree「這一個,沒有孩子,不能使其擴展」嗎?jstree的問題可能會擴大沒有孩子的節點

任何人都知道它來自哪裏?我能做些什麼來解決這個問題?

因爲它似乎是一個問題,當我使用contextmenu插件的複製/粘貼功能。當我粘貼一個沒有子節點但尚未打開的節點(新父節點)時(除非子節點尚未打開),沒有任何事情發生,除了請求讓子節點(比如點擊打開節點的請求)沒有明顯返回。它不執行move_node函數。

編輯:我有一個從文本菜單

有人能幫助我「加」同樣的問題?

感謝

+0

您可以創建一個的jsfiddle樣? – Radek

回答

4

我加入了jstree-leaf類的attr屬性沒有孩子我的節點。

attr: { "class" : "jstree-leaf" } 

這然後設置你需要沒有擴展特徵的CSS類。

2

我有與「創建」方法和沒有子節點的節點相同的問題。解決它將這些節點的狀態指定爲「打開」而不是默認的「關閉」。

希望這有助於。

+2

我必須根據Quandary將它設置爲'leaf'。 '關閉'不起作用。 – fiat

+1

我不得不將它設置爲'Leaf'。 –

10

從jsTree文檔:

http://www.jstree.com/documentation/html_data 

三個類別中的一個將根據節點結構可以應用於:

<li class="[ jstree-open | jstree-closed | jstree-leaf ]"> 

喬納森斯托威爾是正確的,但設置attr.class爲「jstree-葉「不起作用(至少不是最新版本)。

但是「打開」和「關閉」讓我想起了node.state,所以我試了一下,結果發現當你設置節點時。 狀態到您的JSON序列化類中的「葉」,它將不可擴展。

+2

設置「狀態」:「葉」爲我工作。謝謝! – realgt

+0

非常漂亮的把戲;-) – spiderman77

+0

太棒了!高超 – Neo

1

如果您發送JSON數據,給予「jstree葉」作爲li_attr的類

li_attr: {class = "jstree-leaf" }