jstree contextmenu访问节点属性

时间:2013-07-15 16:25:16

标签: jquery contextmenu jstree

我想定义一个上下文菜单,其中项依赖于节点的某些属性。我的树是用json数据设置的 ...

    {
      "data": {
        "title":"SVK 01",
        "attr":{
          "class":"offer","id":"off336","xx":"YY_336"
        }
    }
   },

...

我将mu contextmenu设置为:

    contextmenu : {
             "items": function(node) {
                 if (node.attr('xx') == 'Foo' ) {
                     ....

我想在这里访问属性, 例如     node.attr( 'XX')

但我总是未定义。

单击节点时,它在我的回调中工作得很完美,但在设置上下文菜单时我不知道如何访问它。 任何提示?

3 个答案:

答案 0 :(得分:0)

                "contextmenu": {
                    "items": function ($node) {
                        return {
                            "Ativar": {
                                "label": "Ativar",
                                "action": function (obj) {
                                    $("#jstree_div").jstree("enable_node", $node);
                                    var node = $('#jstree_div').jstree(true).get_node($node);
                                    alert($("#" + node.id).attr("class"));
                                }
                            },
                            "Desativar": {
                                "label": "Desativar",
                                "action": function (obj) {
                                    $("#jstree_div").jstree("disable_node", $node);
                                    var node = $('#jstree_div').jstree(true).get_node($node);
                                    alert($("#" + node.id).attr("class"));
                                }

                            }
                        };
                    }
                }

答案 1 :(得分:0)

contextmenu: {
    items: {
         rename: {
             label: "Rename"
             action: function (node) {
                 var inst = $.jstree.reference(data.reference), obj = inst.get_node(data.reference);

                 var xx = obj.data.xx;
             }
         }
    }
}

来源:https://github.com/vakata/jstree/issues/1126

答案 2 :(得分:0)

尝试一下:

contextmenu : {
  "items": function(node) {
    if (node.data.attr.xx === 'Foo' ) {
      ....