JsTree Ouvrir un nœud puis sélectionnez un nœud enfant (à l'aide de json_result)
Je vais avoir des ennuis avec un JsTree je suis en MVC2 projet. Je voudrais créer une fonction pour désélectionner/fermer tous les nœuds de l'arbre. Ensuite, ouvrez un nœud spécifique, et sélectionner un nœud enfant (j'ai les valeurs d'Id pour les deux).
Le problème est que la select_node est toujours appelée avant la open_node finitions, de sorte que le nœud n'est pas sélectionnée, comme l'arbre n'a pas chargé les données encore, et l'ID de nœud n'existe pas.
J'ai d'abord essayé cette fonction.
$('#demo3').jstree('deselect_all');
$('#demo3').jstree('close_all');
$('#demo3').jstree("open_node", $('#ParentId'), false, true);
$('#demo3').jstree("select_node", $('#ChildId'));
J'ai ensuite essayé de déplacer le code de la select_node et move_node lie de l'arbre, mais pas de chance. Pour le moment je suis coincé à l'aide d'un setTimeout(), qui est une horrible solution.
Personne ne sait comment je peux l'arborescence pour sélectionner le nœud après l'ouverture a fini?
OriginalL'auteur Joe | 2011-09-05
Vous devez vous connecter pour publier un commentaire.
Vous pourriez essayer de passer une fonction qui sélectionne le nœud comme un rappel, comme:
De cette façon
select_node
sera appelée une fois la open_node renvoie succès.OriginalL'auteur Nikos Steiakakis
Je suis actuellement en train de l'utiliser dans un MVC4 projet.
si vous configurez le open_node fonction pour charger le nœud JSON (dans le "noyau" plugin vous définissez load_open de vrai), le nouveau nœud est ajouté existe dans le côté serveur, mais son élément DOM est toujours pas parce le open_node fonction ne pas terminer le travail. Par conséquent, vous avez besoin d'attendre ou de l'utilisation d'un deuxième paramètre (succès de rappel). Dans le rappel le nouveau nœud rendu dans l'arborescence DOM et son sélecteur valide.
jsTree de configuration de l'échantillon:
Mon code de travail:
OriginalL'auteur Ashraf Sayied-Ahmad
espère que cela aide et désolé je ne suis pas en utilisant json. Je suis à l'aide de jstree avec fonction pour ouvrir les nœuds en cliquant sur des éléments en dehors du code html de jstree.
chaque nœud dans notre configuration est comme une page web, donc sur la page d'accueil du tableau de bord, nous avons liste des dernières pages modifiées.
chacun de ces liens a ce javascript à exécuter
où 339 est l'id de la page, nous voulons modifier
et c'est fonction de l'utilisé pour être exécuté
le problème, nous avons remarqué récemment que si la page a récemment édité, est profonde à l'intérieur de l'arbre, plus précisément dans la section qui n'a pas encore été chargé il échouera
c'est pourquoi j'ai décidé de faire une requête ajax vers le serveur afin de récupérer tous les parents id
changé de code ci-dessous, l'ajax dans mon cas, sera de retour à quelque chose comme ceci à la recherche xml
et la fonction
en outre, une fonction qui est passé en boucle sur les rappels de open_node, la fonction s'ouvre nœud par nœud et quand il frappe la dernière entrée qui doit être le véritable nœud id nous voulons sélectionner, il va utiliser le select_node au lieu
j'ai testé ma solution avec IE8, FF et Chrome tout semble fonctionner très bien, et en plus de cela j'utilise jQuery v1.10.1 et jsTree 1.0-rc1 (malheureusement que le code a été là depuis des années et elle a tout ce que la base de données et d'autres intégrations j'ai décidé de ne pas changer pour des versions plus récentes, il fonctionne)
espère que j'ai aidé quelqu'un
Tom
OriginalL'auteur tomhre