jsTree でノードを折りたたみをした時に
折りたたんだ中に選択していたノードが存在したかチェックして処理したい場合がある。
”折りたたみ”のイベントを探して処理を書く。
→ここで、探す。。 https://www.jstree.com/api/#/?q=.jstree%20Event&f=after_close.jstree
after_close.jstree
あらかじめ、選択したノード id を格納する hidden フィールドなどを準備
<input type="hidden" id="selectid">
after_close.jstree イベントで、node.children_d 配列に
存在するかチェックする。
$('#tree').jstree({ 'core':{ 'data':{ "url":"./querytree", "dataType":"json" } } }).on('after_close.jstree', function(e, data){ var selectedID = $('#selectid').val(); if ($.inArray(selectedID, data.node.children_d) >= 0){ console.log("closeしたノードの中で 見つかった"); }else{ console.log("closeしたノードの中で 見つからない"); } }).on('select_node.jstree', function(e, data){ // 選択したノードの id を、hiddenフィールドに保持しておく $('#selectid').val(data.node.id); });