5

[#1] jstree からルートノードを隠したいのですが?

「ルート」ノードにいくつかのサブルート ノードを追加したので、ルート ノードを jsTree から隠したいですか?

ここに画像の説明を入力

次の CSS を適用してルート ノードを非表示にすると、IE8 でルック アンド フィールの問題が発生しました。

    $("ul:contains('Root')").css('position','relative');
    $("ul:contains('Root')").css('top','-20px');
    $("ul:contains('Root')").css('left','-20px');

ルート ノードを非表示にする IE8 の CSS の問題

[#2] 以下のコアプラグインでは、

ルートノードを開くためにハードコードされた値 ( Root_ID ) をルートノードに提供しました 最初は正常に動作しました

"core" : { initially_open" : [ "Root_ID" ] }

ルート ノード ID は、異なる xml 応答を提供しているため、RootID、RID、Root_id、R_ID ..... と異なる場合があります。

次のような疑似コード:

"core" : { initially_open" : [ **1st_node_of_Tree_like_(ul > li:first)_OR_$(".jstree-last").first()** ] }

この2つのことをどのように達成できますか?

この問題に関するヘルプまたはガイダンスをいただければ幸いです。

4

6 に答える 6

6

少し直感に反しますが、明示的なルート ノードを持たないツリーを作成する最善の方法は、データにルート ノードを提供せず、ルート ノードのすべての子に親 "#" を持たせることです。jstree は、ルートの複数の最上位の子を持つツリーをレンダリングします。ルートを隠そうとする混乱を避けます。

于 2015-12-30T22:11:24.667 に答える
3

私は非常に簡単な答えを見つけました:)

$("#treeViewDiv").bind("loaded.jstree", 
 function (event, data) {
       // To hide root nodes text
       $("a:contains('Root')").css("visibility","hidden")  
       // Need to find other way to hide rootNodeName Any1 knows ?

       // To hide - icon
       $(".jstree-last .jstree-icon").first().hide()
  });
于 2012-05-03T17:52:28.853 に答える
1

試す:

$("a:contains('Root')").css("visibility","hidden")

また

$("a:contains('Root')").css("display","none")

jsTreeにもオプションがあるかもしれませんが、私はそのlibに慣れていません。

アップデート:

jsTree が何らかの div にあると仮定して、ルート要素が非表示になるまで移動してみてください。

$("ul:contains('Root')").css('position','relative');
$("ul:contains('Root')").css('top','-20px');
$("ul:contains('Root')").css('left','-20px');

正しい を取得するには、css selector( "ul:contains('Root')")を編集する必要がある場合がありますul。また、移動量を編集してtopleft

于 2012-05-03T11:40:16.127 に答える
0
$("#yourTreeDiv").on("loaded.jstree", function(e, data) {
    $("#yourTreeDiv > ul > li > i.jstree-icon").remove();
    $("#yourTreeDiv > ul > li > a.jstree-anchor").remove();
});
于 2015-05-05T14:52:04.470 に答える
0

私にとって(少なくともChromeとFirefoxで)機能した別のソリューションは次のとおりです。

#root>ins, #root>a{
    display: none;
}

ul>#root{
    position: relative;
    /*top: -20px;*/
    left: -20px;
}
于 2012-09-24T09:39:55.663 に答える