Je voudrais commencer à utiliser dynatre sur ma page, mais j'ai probablement besoin de rechercher mon arbre par nom. Savez-vous peut-être comment faire cela? p>
4 Réponses :
Il n'y a actuellement aucune fonction de recherche, mais vous pouvez utiliser quelque chose comme celui-ci (non testé)
var match = null;
tree.visit(function(node){
if(node.data.title === "foo"){
match = node;
return false; // stop traversal (if we are only interested in first match)
}
});
alert("Found " + match);
Veuillez ajouter une recherche testée et de travail à votre prochaine version :)
Vous avez une erreur dans votre code. Vous devez vérifier si le match trouvé. S'il n'y a pas de correspondance dans l'arbre, vous affichez trouvé null code>
Je devais avoir non seulement des nœuds correspondant, mais aussi les chemins entière de ces nœuds. J'ai écrit cette fonctionnalité et ça fonctionne pour moi.
Modifications pour la bibliothèque: p> Utilisation: p>
Travaillé comme un charme! Merci! BTW, je pense que l'utilisation doit être $ ("# arbre") code> - votre code manque le # code>.
J'essaie de mettre en œuvre cela, mais je ne sais pas comment faire cela. S'il vous plaît clarifier pour moi! Je ne sais pas où je mets ce code. Et quel est le modèle? le texte de la recherche ??
Exactement ce dont j'ai besoin, une pitié je peux éteindre une seule fois :)
Brillant. Maintenant, après avoir utilisé ce code pour filtrer sur un terme de recherche, je souhaite sélectionner une case à cocher de dossier et cette cause seulement ces nœuds enfants qui ne sont pas cachés pour être basculés. Quelqu'un a-t-il un moyen facile de le faire? Je posterai si je le découvre.
Je l'ai fait de cette façon usage: p>
Grâce à @ mars10, j'ai fait une petite fonction simple pour rechercher un nœud avec le titre:
// If searchFrom is null, root is used
function seachFolderNodeWithName(name, searchFrom) {
if (name == null) {
return undefined;
}
if (searchFrom == null) {
searchFrom = jQuery('#tree').dynatree("getRoot");
}
var match = undefined;
searchFrom.visit(function (node) {
if (node.data.title === name) {
match = node;
return false; // Break if found
}
});
return match;
};
Reportez-vous à ce DesignChemical.com/blog /index.php/jquery/... dynatree est un simple ul> li