Pour ceux qui ont travaillé avec le plugin tree de JQuery, il vous est peut-etre déjà arrivé d'avoir besoin de n'ouvrir qu'une seule branche à la fois. Voici comment j'ai résolu ce problème :
$('#tree').tree({
callback: {
onOpen: function(NODE, TREE_OBJ) {
// fermeture des branches suivantes
closeNextBranches(TREE_OBJ.next(NODE, true), TREE_OBJ);
// fermeture des branches précédentes
closePrevBranches(TREE_OBJ.prev(NODE, true), TREE_OBJ);
}
}
});
function closeNextBranches(NODE, TREE_OBJ) {
TREE_OBJ.close_branch.call(TREE_OBJ, NODE);
if (TREE_OBJ.next(NODE, true) != false) {
closeNextBranches(TREE_OBJ.next(NODE, true), TREE_OBJ);
}
}
function closePrevBranches(NODE, TREE_OBJ) {
TREE_OBJ.close_branch.call(TREE_OBJ, NODE);
if (TREE_OBJ.prev(NODE, true) != false) {
closePrevBranches(TREE_OBJ.prev(NODE, true), TREE_OBJ);
}
}
J'espère que ceci vous aidera. N'hésitez pas à me proposer d'autres solutions.