Jstreeがあります。 IDが158の場所にあるオブジェクトにバインドされているノードを選択します。これは機能しますが、愚かなようです。これを行うより慣用的な方法は何ですか?
var $tree = $('.jstree', myContext),
node = $tree.find('li').filter(function() {
return ( $(this).data().location || {}).id === 158;
});
$tree.jstree('select_node', n)
答えがどれも役に立たなかったので、ここでチャイムを鳴らしたかっただけです。最後にDID=作業は非常に簡単でした:
$('#someTree').jstree('select_node', 'someNodeId');
someNodeId
をjQueryオブジェクトとして初期化していないことに注意してください。これは単なる文字列です。
ツリーをロードした直後にこれを行いましたwithout必要ではないと思われるので、それを "ready" bindイベントに入れます。
数時間のイライラから数人を救うことを願っています。 。 。
ロードされたツリーにフックするには:
.on('loaded.jstree', function() {
// Do something here...
});
jsTreeグループ に基づいて試すことができます
jQuery("#getStartedTree").jstree("select_node", "#test2");
データが次のように見える場合
The JSON in the TextFile.txt - borrowed from your simple example
[
{
"data" : "A node",
"children" : [ "Child 1", "Child 2" ]
},
{
"attr" : { "id" : "test1" },
"data" : {
"title" : "Long format demo",
"attr" : { "id" : "test2", "href" : "#" }
}
}
]
およびjsTreeのセットアップ
My tree container is <div id="getStartedTree">
My jsTree code
$("#getStartedTree").jstree({
"themes": {
"theme": "default",
"url": "../App_Css/Themes/Default/style.css",
"dots": true,
"icons": true
},
"json_data": {
"ajax": {
"url": "../SiteMaps/TextFile.txt",
"dataType": "json",
"data": function(n) {
return { id: n.attr ? n.attr("id") : 0 };
}
}
},
"plugins": ["themes", "json_data", "ui"]
});
それはあなたが望んでいることですか?
ノードを選択する別の方法として、jstreeノードのクリックをシミュレートできました。次のコードは使用されたものです:
$(treeIdHandle + " li[id=" + nodeId + "] a").click();
私はそれをやった:
$('.jstree').jstree(true).select_node('element id');
このコード:
jQuery.each(produto.categorias, function(i, categoria) {
$('#lista-categorias').jstree(true).select_node(categoria.dadoCategoria.id);
});
jstree 3.0.8を使用します。 「状態」を使用しないでください
'plugins':['dnd'、 'sort'、 'types'、 'contextmenu'、 'wholerow'、 'ui']
サーバーはjsonを提供し、選択されたノードは
"state":{"selected":true、 "opened":true}
このソリューションは私のために働く
// after the tree is loaded
$(".jstree").on("loaded.jstree", function(){
// don't use "#" for ID
$('.jstree').jstree(true).select_node('ElementId');
});
さらに、PHPループ(動的)でも:
$(".jstree").on("loaded.jstree", function(){
<?php foreach($tree as $node): ?>
$('.jstree').jstree(true).select_node('<?=$node?>');
<?php endforeach;?>
});
これがあなたのために働くことを願っています。