前提・実現したいこと
ボタンクリックでjstreeのテキストノードを取得したいと考えております。
現時点では、jstreeのchangeイベントではテキストノードを取得することができました。
これをボタンクリックイベントで同じようなことをしたいです。
現状ソースコード
javascript
1 $('#tree').on('changed.jstree', function (e, data) { 2 var i, j, r = []; 3 for (i = 0, j = data.selected.length; i < j; i++) { 4 r.push(data.instance.get_node(data.selected[i]).text); 5 } 6 alert('選択設備名称 : ' + r.join(', ')); 7 }).jstree();
試したこと
javascript
1 // 選択ボタン押下時イベント 2 $("#btn_eqp_sel").click(function () { 3 $('#tree').on('changed.jstree', function (e, data) { 4 var i, j, r = []; 5 for (i = 0, j = data.selected.length; i < j; i++) { 6 r.push(data.instance.get_node(data.selected[i]).text); 7 } 8 alert('選択設備名称 : ' + r.join(', ')); 9 }).jstree(); 10 });
ボタンクリックベントの中に単純に入れたのですが案の定動かず…。
どのようにしたらいいのでしょうか?
調べても参考となるものが見つからずつまずいております。
どうぞよろしくお願い致します。
「ボタンクリックでjstreeのテキストノードを取得したい」とのことですが、取得したいのはどのテキストノードですか?全部でしょうか?
選択したもののみです。
複数選択はできないようになっているので必ず一つだけです。
get_selected() で取得できそうに思うのですが、すでにお試しになりましたか?
get_selected() でIDは取得できたのですが、Textが取得できませんでした。
ちなみになんですが、get_selectedを使うとなるとget_nodeの部分を変更すればいいんですよね?
ドキュメントによると、
if set to true the returned array will consist of the full node objects, otherwise - only IDs will be returned
とのことですが。
すみません、自己解決致しました。
ご解決されて何よりです。
自己解決されたコードですが、なんとなく、何度もクリックしたときに大丈夫かな、などと感じました。
ここには書かれていないけれど、isAdditinal でフラグ管理をされている、ということですよね?
クリックしたら必ず別ブラウザに飛ぶようになっているので、大丈夫です。
isAdditinal でフラグ管理しております。
目的とは異なるので割愛してしまいました、すみません(__)
回答1件
あなたの回答
tips
プレビュー