【发布时间】:2011-09-12 13:39:36
【问题描述】:
我有一棵像这样通过 JSON 填充的树(请原谅格式):
$("#treeView").jstree({
"themes": {
"theme": "default",
"dots": false,
"icons": false
},
"json_data": {
"data": [
{
"data": "2011",
"metadata": { id: 2011 },
"children": [
{ "data": "January", "attributes": { "id": "jan_2011"} },
{ "data": "February", "attributes": { "id": "feb_2011"} },
{ "data": "March", "attributes": { "id": "mar_2011"} },
{ "data": "April", "attributes": { "id": "apr_2011"} },
{ "data": "May", "attributes": { "id": "may_2011"} },
{ "data": "June", "attributes": { "id": "jun_2011"} },
{ "data": "July", "attributes": { "id": "jul_2011"} },
{ "data": "August", "attributes": { "id": "aug_2011"} },
{ "data": "September", "attributes": { "id": "sep_2011"} },
{ "data": "October", "attributes": { "id": "oct_2011"} },
{ "data": "November", "attributes": { "id": "nov_2011"} },
{ "data": "December", "attributes": { "id": "dec_2011"} }
]
}]
},
"plugins": ["themes", "json_data", "ui"]
}).bind("select_node.jstree", function (e, data) {
alert(data.rslt.obj.data("id"));
});
});
我的问题是,每当单击节点时,警报框都不会显示任何内容,或者只是“未定义”。换句话说,我认为没有为子节点设置“id”属性。
有什么想法吗?
【问题讨论】:
-
您是否尝试过使用 Chrome 调试器或 Firebug 实际查看 DOM 以查看生成的 HTML 元素的样子?
-
@Pointy 是的,html 代码中不存在 id 属性。但是,父节点也不存在它,这很奇怪,因为当我单击父节点时,id 确实出现在警报框中。没有显示的是孩子的“id”。
-
我对 jsTree 不熟悉,但假设这是在创建一个 DOM 结构,您似乎将相同的 id 分配给多个元素,这是非法的。
-
你能创建 jsfiddle 的例子吗?
标签: javascript jquery html json jstree