Javascript 如何在select_节点事件上为jstree添加元数据
如何在Javascript 如何在select_节点事件上为jstree添加元数据,javascript,jstree,Javascript,Jstree,如何在select\u节点上为jstree添加元数据。以下是我试图添加的内容: $.ajax({ type : 'GET', url : '/assessment/getassess', dataType : 'json', success : function(jsonData) { $("#treeViewDiv").jstree({ "themes" : {
select\u节点上为jstree添加元数据。以下是我试图添加的内容:
$.ajax({
type : 'GET',
url : '/assessment/getassess',
dataType : 'json',
success : function(jsonData) {
$("#treeViewDiv").jstree({
"themes" : {
"theme" : "classic",
"dots" : true,
"icons" : true,
"url" : "/css/themes/classic/style.css"
},
"json_data" : jsonData,
"plugins" : ["themes", "json_data", "ui", "contextmenu"],
"contextmenu" : {
items : createMenu
}
}).bind("select_node.jstree", function(e, data) {
$(data.rslt.obj).data("jstree").description = "Size: 45units";
});
}
});
我认为您使用的功能不正确
不给$.data()
函数的结果赋值,而是自动保存
你要做的是改变这一行
$(data.rslt.obj).data("jstree").description = "Size: 45units";
对此,
// On the next line, we use "|| {}" because if the data attribute is unassigned, we want to start with a default empty object.
var jstreeData = $(data.rslt.obj).data("jstree") || {};
// assign the property(ies)/value(s) you want.
jstreeData.description = "Size: 45units";
// finally, reassign your modified object back to the data attribute.
$(data.rslt.obj).data("jstree", jstreeData);
如果数据属性由对象组成,则需要:
缓存对象李>
修改缓存对象李>
将修改后的缓存对象保存/分配回数据属性
最后,要修改数据
属性,您需要使用$.data(key,value)
函数重载。您做过一些研究吗?是的。。是的。当我使用alert(data.rslt.obj.data(“id”))时;在一个节点的select_节点上,它会显示正确的值,但当我尝试为它赋值时。它不起作用。你能展示更多的代码吗?仅从上述代码行就很难帮助/解决您的问题。我认为您应该更丰富您的问题-看看.bind(“select_node.jstree”,function(e,data){$(data.rslt.obj).data(“jstree”).description=“Size:45units”;});我很抱歉有这么长的差距。但那个代码对我不起作用。@user30081989您仍然有问题吗?如果你找到了解决方案,你应该发布一个答案。实际上我的目的是让http获取元数据属性并将其保存在节点的元数据中,因为上述方法对我不起作用,所以我在javascript中使用了一个全局变量,该变量的树结构为json,所以我为每个节点对象添加了一个额外的属性来存储数据,所以您希望HTTP调用将特定的jsTree数据作为元数据发送?你的问题现在肯定不那么清楚了=\嘿,上面的方法不起作用。所以我采取了完全不同的方法。