Я использую плагин дерева jquery для визуализации иерархических данных.
Я закодировал дополнительные функции, которые позволят пользователю взаимодействовать с этими данными (например, добавление / удаление узлов, замена узлов и т. д.)
В настоящее время этот плагин поддерживает то, что всякий раз, когда вы хотите добавить какой-либо узел, вы можете вызвать следующий метод,
$("#browser").treeview({
add: branches
});
здесь branches - это jQuery object, созданный с помощью блока HTML, который будет представлять конкретный узел.
Однако для удаления и замены узлов я использую общие функции JQuery, такие как,
для удаления,
$("#topnd2").remove();
для обмена,
var next = $("#topnd2").next();
$("#topnd2").insertAfter(next);
topnd2 - это id любого конкретного узла дерева.
Узлы удаляются / меняются местами должным образом, но проблема в том, что дерево не отображается, и поэтому изображения дерева (в основном вертикальные линии, обозначающие ветви) не настроены должным образом.
Например, если я удалю последний узел, то этот узел будет удален из визуализированного древовидного представления, но оставшийся родственный узел должен получить L как изображение ответвления, но не | .
Я пытался вызвать
$("#browser").treeview();
Пожалуйста, дайте мне знать ваши идеи.
Спасибо, Джатан



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я нашел обходной путь, как указано ниже,
После замены узла виртуально добавьте предыдущий узел к его дочернему элементу,
$ ("# браузер"). treeview ({add: $ ("# topnd2"). insertBefore (предыдущий) .next ()});
Если узел переставлен, виртуально добавляет текущий узел к его следующему узлу.
$ ("# браузер"). treeview ({add: $ ("# topnd2"). insertAfter (next)});
в настоящее время он работает нормально, обновлю этот пост, если обнаружу какие-либо проблемы в этом подходе. Также, пожалуйста, подтвердите этот подход, если знаете.
С уважением, Джатан
Если вы попытаетесь снова обновить древовидное представление после удаления узла, ссылка будет работать, но не значок [+] или [-]. Пробовал в нескольких браузерах ..