Kullanım durumunuzu test etmek için aşağıdaki kodu kullanıyorum. Bütün ağacı çökertmeden jstree'yi yeniliyor.
<!DOCTYPE html>
<html>
<head>
<title>JSTree</title>
<link rel="stylesheet" href="dist/themes/default/style.css" />
<script src="dist/libs/jquery.js"></script>
<script src="dist/jstree.js"></script>
<script>
var arrayCollection;
$(function() {
arrayCollection = [
{"id": "animal", "parent": "#", "text": "Animals"},
{"id": "device", "parent": "#", "text": "Devices"},
{"id": "dog", "parent": "animal", "text": "Dogs"},
{"id": "lion", "parent": "animal", "text": "Lions"},
{"id": "mobile", "parent": "device", "text": "Mobile Phones"},
{"id": "lappy", "parent": "device", "text": "Laptops"},
{"id": "daburman", "parent": "dog", "text": "Dabur Man", "icon": "/"},
{"id": "dalmatian", "parent": "dog", "text": "Dalmatian", "icon": "/"},
{"id": "african", "parent": "lion", "text": "African Lion", "icon": "/"},
{"id": "indian", "parent": "lion", "text": "Indian Lion", "icon": "/"},
{"id": "apple", "parent": "mobile", "text": "Apple IPhone 6", "icon": "/"},
{"id": "samsung", "parent": "mobile", "text": "Samsung Note II", "icon": "/"},
{"id": "lenevo", "parent": "lappy", "text": "Lenevo", "icon": "/"},
{"id": "hp", "parent": "lappy", "text": "HP", "icon": "/"}
];
$('#jstree').jstree({
'core': {
'data': arrayCollection
},
"checkbox": {
'visible': true,
'keep_selected_style': false
},
"plugins": ["wholerow", "checkbox"]
});
});
function resfreshJSTree() {
$('#jstree').jstree(true).settings.core.data = arrayCollection;
$('#jstree').jstree(true).refresh();
}
function addNokia() {
var nokia = {"id": "nokia", "parent": "mobile", "text": "Nokia Lumia", "icon": "/"};
arrayCollection.push(nokia);
resfreshJSTree();
}
function deleteDalmatian() {
arrayCollection = arrayCollection
.filter(function(el) {
return el.id !== "dalmatian";
});
resfreshJSTree();
}
</script>
</head>
<body>
<input type="button" onclick="addNokia()" value="Add Nokia"/>
<input type="button" onclick="deleteDalmatian()" value="Delete Dalmatian"/>
<div id="jstree"></div>
</body>
</html>
- Not:
- bir tarayıcıda yukarıdaki sayfayı açtıktan sonra, tüm düğümleri ve jstree çocuk düğümleri açın.
- Nokia ekle düğmesine tıklayın.
- Nokia Lumia düğümü, Ağacı düğümünde, ağacını kök düğümüne taşımadan ekleyecektir.
- Benzer şekilde Dalmaitian Sil düğmesini tıklayın.
- Ve Dalmatian düğümünü, Köpekler düğümünden silecek ve kök yapısına çökmeden yeni yapıyı görüntülemek için ağacını yeniliyor.
Ve beform Ben $ ('# jstree_demo_div2') kullanın. Jstree ('yenileme'); 'verileri silmek için, '_id' parametresi değiştirildi. – wtf512
bunun yardımcı olacağını umarız: http://stackoverflow.com/questions/26270239/creating-dynamic-jstree-using-alternative-json-format-stored-in-array/26299310#26299310 ajax döndürülen jsonu arrayCollection değişkeninde saklayabilirsiniz –
normal bir jquery ajax çağrısı yapın ve yeni url ile ajax araması yaptığınızda, arrayCollection'a cevabı atayın ve bu şekilde ağacı yenileyin: $ ('# jstree'). Jstree (true) .settings.core.data = arrayCollection ; $ ('# Jstree') jstree (doğru) .Refresh().; –