jstree select node
Salutations,
Je suis à l'aide de jsTree à generatate mes données hiérarchiques. JsTree est générée comme suit:
$(function() {
$("#industries").tree({
data: {
type: "json",
opts: {
url: "/Admin/GetIndustries/"
}
}
});
});
il fonctionne, et les jsonresult est quelque chose comme:
[{"attributes":[],"data":{"title":"Adwokaci, Notariusze","id":"1a051101-c3fa-48f2-b2e1-c60d1b67ea22"},"children":[{"attributes":[],"data":{"title":"Kancelarie adwokackie","id":"26d6cff1-3c7f-4a2f-bf5a-422e08127b43"
ma question est: comment puis-je enregistrer l'id du nœud sélectionné dans certaines champ caché? - Je faire quelque chose comme ceci:
<script type="text/javascript">
$("#industries").click(function() {
var tree = $.tree.reference("industries");
var t = $.tree.focused(); if (t.selected) t.selected; else alert("Select a node first");
alert(t.id);
});
mais il ne fonctionne pas. Je reçois dans ma fenêtre d'alerte "undefined". Quelqu'un peut-il m'aider?
EDIT:
J'ai changé le jstree instance comme suit:
$(function() {
$("#industries").tree({
callback: {
onselect: function(NODE, TREE_OBJ) {
alert(NODE.id);
}
},
data: {
type: "json",
opts: {
url: "/Admin/GetIndustries/"
}
}
});
});
et je me vide alertt
source d'informationauteur Piotr Ptak
Vous devez vous connecter pour publier un commentaire.
Ou simplement lier l'sélectionnez le nœud:
Essayer de regarder les variables pour l'ID, ou un NŒUD. En fait j'ai été en utilisant REF_NODE pour obtenir
Je n'ai pas vérifié toutes les réponses, mais vu que vous n'avez pas sélectionner tout donc décidé de poster une méthode qui a fonctionné pour moi
c'est si vous voulez que l'id et le titre du nœud. espérons que cela aide
Vous pouvez l'utiliser dans votre
bind()
fonction comme ceci:La même chose avec décochez l'action.
Essayez les rappels mentionnés ici: http://www.jstree.com/documentation
Il doit travailler à quelque chose comme ceci:
Maintenant que vous avez changé votre code pour utiliser la onselect rappel, êtes-vous encore avoir des problèmes? Je ne peux pas dire si votre modification signifie que vous avez résolu le problème ou pas. Si vous avez, vous devez marquer cette question qu'a répondu.
Personnellement, je utiliser onchange au lieu de onselect, mais je suis sûr que l'un et l'autre travail. Vous pourriez aussi envisager d'utiliser de jquery de données() caractéristiques de stocker des valeurs avec un élément sur la page, au lieu d'un champ caché, sauf si vous êtes désireux de soumettre un formulaire avec la valeur.
Mais si vous avez besoin de l'enregistrer dans un champ caché, essayez quelque chose comme ceci:
Sont les numéros assignés à l'un des objets HTML à l'heure actuelle?
Dans ma solution, j'ai mis l'id de l'attribut de l'élément, et pas dans les données, qui définit l'id de chaque <li>. Comme:
et qui a pour effet de rendre ce code HTML (je suis aussi à l'aide de la jsTree case plugin):
Comme Matt, j'ai aussi mis le code dans un des attributs de l'objet, de sorte qu'il devient attaché le noeud li (exemple copié à partir de Matt).
Alors, dans mon onselect fonction, j'ai d'abord envelopper le noeud li en jQuery (le paramètre de la fonction n'est pas enroulé), puis obtenez de l'id.
Ainsi, vous obtenez le nœud sélectionné détails.
Voici une série d'article vous devez suivre si vous utilisez jsTree.