質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

2068閲覧

[JS,jQuery]jsTreeでノード選択時にcreate_nodeでノードを生成していますが、既にノードが生成されているのを選択した際はtreeを閉じたいです。

toyamal

総合スコア28

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/04/25 22:15

前提・実現したいこと

Ajaxでデータを取得して、jsTreeを生成しています。
親階層がない場合はjsTreeを生成、親階層がある場合はノードをcreate_nodeで追加する処理をしています。
既にノードが生成されている場合、生成する処理ではなく選択したノードを閉じるようにしたいです。
ですが、方法がわかりません。ノードを閉じる処理をご存知の方がいらっしゃいましたら、ご教授して頂きたいです。

発生している問題・エラーメッセージ

既に生成済みのノード選択時、ノードを閉じる方法がわからないです。

jsTree生成、ノード生成のソースコード

js

1if(x.parentGroupId == 0){ 2 x.parentGroupId = "#"; 3 createflg = 1; 4 } 5 return {'id' : x.id.toString() , 'parent' :x.parentGroupId.toString(), 'text' : x.itemName.toString(), 'code' : x.code.toString() }; 6 }); 7 console.log(tree); 8 if(createflg == 1){ 9 $('#jstree').jstree({ 'core' : { 10 //check_callbackをtrueにしないと動的にノードを追加できない。 11 "check_callback" : true, 12 "themes" : { "stripes" : true, "icons": false, "responsive": false }, 13 'data' : tree, 14 } 15 }); 16 }else{ 17 for(var i in data.result) { 18 var parent = parent_id; // 親ノードを設定 19 var node = { id:data.result[i].id ,text:data.result[i].itemName,code:data.result[i].code}; 20 $('#jstree').jstree().create_node(parent,node,''); // ノードを追加 21 } 22 23 $("#jstree").jstree("open_all"); 24 25 26 } 27 createflg = 0;

###ノード選択時の処理

//階層構造ノード選択時処理 $('#jstree').on('select_node.jstree', function(e, data) { console.log("node_id: " , data,'original',data.node.original); var selectNode = data.node.id; // 選択ノード取得 xsearch.view_hierarchy(selectNode); console.log(data) $('#jstree').jstree(true).delete_node(data.node.children); });。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

jsTree は使ったことがないですが、close_node()メソッドのことですかね?

https://www.jstree.com/api/#/?f=close_node(obj%20[,%20animation])

投稿2021/04/26 09:26

satokei

総合スコア1217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問