JQuery JsTree プラグインの子ノードに ajax ロードを使用しています。ロードされたノードを Web ブラウザーで再度開いた場合、すべての子ノードを更新する必要があります。
質問する
8352 次
3 に答える
4
このようなものを使用して、閉じるときに新しいクラスがノードに追加され、開くときにノードが更新されます。クラスが存在する場合。したがって、on close_node 部分を削除し、開いたときに更新する必要があるノードに独自のクラス名を追加できます
$(function () {
var tree_id="#jstree"
var ajax_again="to-be-refreshed";
$(tree_id).bind("open_node.jstree close_node.jstree", function (e,data) {
var currentNode = data.args[0];
if(e.type === "close_node") {
currentNode.addClass(ajax_again);
}
if(e.type === "open_node") {
if (currentNode.hasClass(ajax_again)) {
var tree = $.jstree._reference(tree_id);
tree.refresh(currentNode);
}
}
}) .jstree({
または、開いているすべてのノードが更新されている場合は、簡易バージョンを使用できます
$(function () {
var tree_id="#jstree"
$(tree_id).bind("open_node.jstree close_node.jstree", function (e,data) {
var currentNode = data.args[0];
if(e.type === "open_node") {
var tree = $.jstree._reference(tree_id);
tree.refresh(currentNode);
}
}) .jstree({
于 2012-06-21T01:21:19.653 に答える
2
None of above codes worked for me. Below is my code that it works:
$('.tree-container').on('close_node.jstree', function (event, data) {
var tree = $.jstree.reference('.tree-container');
tree.refresh(data.node);
});
于 2018-07-14T09:56:38.210 に答える