Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在select_节点事件上为jstree添加元数据_Javascript_Jstree - Fatal编程技术网

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数据作为元数据发送?你的问题现在肯定不那么清楚了=\嘿,上面的方法不起作用。所以我采取了完全不同的方法。