Проблема с плагином jquery в виде дерева Dynatree с объектом json
В js
файл, dynatree
показывает ноль в узлах, где, как это работает нормально в php
файлы.
var jsoncat = jsoncat.replace(/\%/g,'"').trim();
var jsoncat = '{"data":['+JSON.stringify(jsoncat)+']}';
var jsonObj = JSON.parse(jsoncat);
var delay=1000;//1 seconds
alert(typeof(jsonObj));
alert(jsonObj.data);
setTimeout(function(){
var treeData = [jsonObj.data];
// --- Initialize sample trees
jQuery('#tree1').dynatree({
checkbox: true,`enter code here`
// Override class name for checkbox icon:
classNames: {checkbox: "dynatree-radio"},
selectMode: 3,
children: treeData,
onActivate: function(node) {
jQuery('#echoActive1').text(node.data.key);
},
onSelect: function(select, node) {
// Display list of selected nodes
jQuery("#categoryid").val(node.data.key);
},
onDblClick: function(node, event) {
node.toggleSelect();
},
onKeydown: function(node, event) {
if( event.which == 32 ) {
node.toggleSelect();
return false;
}
},
});
},delay);
1 ответ
Решение
Мой JSON не был правильно отформатирован, как только я получил правильный JSON, моя проблема решена. Вот последний код.
str_trim = jsoncat.replace(/'/g,'"').trim();
str = '{"data":['+str_trim+']}'
var jsonObj = JSON.parse(str);
cWindowShow('jax.call("community","admin,groups,ajaxEditGroup", ' + groupId + ');', 'Editing Group' , 550 , 450);
var delay=1000;//1 seconds
setTimeout(function(){
var treeData = jsonObj.data;
// --- Initialize sample trees
jQuery('#tree1').dynatree({
checkbox: true,
// Override class name for checkbox icon:
classNames: {checkbox: "dynatree-radio"},
selectMode: 1,
children: treeData,
onActivate: function(node) {
jQuery('#echoActive1').text(node.data.key);
},
onSelect: function(select, node) {
// Display list of selected nodes
jQuery("#categoryid").val(node.data.key);
},
onDblClick: function(node, event) {
node.toggleSelect();
},
onKeydown: function(node, event) {
if( event.which == 32 ) {
node.toggleSelect();
return false;
}
},
});
},delay);