Я (пытаюсь) использовать JStree для дерева категорий / подкатегорий.Это заняло довольно много времени, но мне удалось создать дерево с данными JSON, которые я извлекаю из базы данных (используя PHP для запросов и построения объектов JSON).
Теперь я хотел бы иметь возможность отслеживатьперетащить действия.То есть: подкатегория x из главной категории a перетаскивается в главную категорию b.Мне нужно записать это, чтобы изменить базу данных после действия.Я подумал, что мне понадобятся функции check_move или drop_finish.drop-finish вообще не работает, событие не инициируется.Похоже, это связано с тем, что мои узлы не имеют класса jstree-drop, но я не могу правильно установить класс: он не будет работать.
Функция check_move будет продолжать срабатывать при передаче другихподкатегории и поэтому создает загрузку нежелательных данных.
Мои (тестовые) данные JSON:
[
{
"metadata": {
"id": "1"
},
"data": "Geluid",
"children": [
{
"data": "Speakers",
"attr": {
"href": ""
},
"metadata": {
"id": "1"
}
},
{
"data": "Versterkers",
"attr": {
"href": ""
},
"metadata": {
"id": "3"
}
}
]
},
{
"metadata": {
"id": "2"
},
"data": "Licht",
"children": [
{
"data": "Parren",
"attr": {
"href": ""
},
"metadata": {
"id": "2"
}
}
]
}
]
Мой код JStree:
$(function () {
$("#Create").click(function () {
$("#tree").jstree("create");
});
$("#Rename").click(function () {
$("#tree").jstree("rename");
});
$("#Remove").click(function () {
$("#tree").jstree("remove");
});
$("#tree").jstree({
"dnd" : {
"drop_finish" : function (data) {
alert ("Drag OK");
//alert("Dragged: " + data.o.attr('id') + " to " + data.r.attr('id'));
}
},
"themes" : {
"theme" : "classic",
"dots" : true,
"icons" : false
},
"json_data" : {
"ajax" : {
"url" : "get_category_tree.php"
}
},
"plugins" : [ "themes", "json_data", "ui", "crrm", "checkbox", "dnd" ]
})
.bind("select_node.jstree", function (e, data) {
var req = new ZaxasRequest();
req.getContent("category_content.php?id=" + data.rslt.obj.data('id') +"", "category_content");
})
});
В принципе, я хотел бычтобы получить удостоверения личности.Не беспокойтесь о том, что идентификатор основной и подкатегории может быть одинаковым, я исправлю эту проблему позже;) Кто-нибудь может указать мне правильное направление?