我想定义一个上下文菜单,其中项依赖于节点的某些属性。我的树是用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')
但我总是未定义。
单击节点时,它在我的回调中工作得很完美,但在设置上下文菜单时我不知道如何访问它。 任何提示?
答案 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;
}
}
}
}
答案 2 :(得分:0)
尝试一下:
contextmenu : {
"items": function(node) {
if (node.data.attr.xx === 'Foo' ) {
....