2013-02-27 89 views
0

我有一個簡單的兩級jstree允許在父節點之間拖放葉節點。當一個父節點只包含一個葉子時,當我將葉子拖出時,父節點「變成」一個葉子節點。我想阻止這一點,但我找不到任何文件告訴我如何做到這一點。jstree:防止父節點成爲葉節點

我已經包含了正在發生的事情的圖形表示。請注意,在圖2中,父節點「Proctor」認爲它是外觀上的葉節點。我仍然可以將項目拖入其中,並再次成爲非葉節點。如果父節點保持組圖標外觀,它對這個接口更有意義。還要注意,當樹最初打開時,空的父節點會顯示組圖標(這是件好事)。

這裏的樹,因爲它似乎開始:

enter image description here

和這裏的樹後,我拖保羅Postler從寶潔到貢獻者:

enter image description here

回答

2

我想出了一個辦法,這樣做,但它並不特別乾淨。任何其他答案將不勝感激。以下是我添加到綁定的move_node.jstree代碼中的內容:

var oldParent = document.getElementById(
    (oldIsUnassigned) ? "Unassigned" : "P" + oldRoleId); 
var className = oldParent.className.replace("jstree-leaf", ""); 
if (className.indexOf("jstree-drop") < 0) className += " jstree-drop"; 
if (className.indexOf("jstree-open") < 0) className += " jstree-open"; 
oldParent.className = className;