触发contextmenu自定义事件后出现jsTree错误

时间:2017-01-28 19:44:26

标签: javascript jquery jstree

我设置了这个上下文菜单

$('#myJsTree'). { .....
    , 'contextmenu': {
        'items': function (node) {
            if (mode != "Open") {
                var tmp = $.jstree.defaults.contextmenu.items();
                delete tmp.rename;
                delete tmp.remove;
                delete tmp.ccp;
                tmp.create.label = "New Folder";
                tmp.create.action = function (dta) {
                    console.log("so far so good");
                    $('#myJsTree').trigger('create_node.jstree', dta);
                }
                return tmp;
            }
        }
});

触发此事件

$('#myJsTree').on('create_node.jstree', function (e, dta) {
    console.log("dta", dta);
});

一切似乎都很好,但控制台也会记录:

  

到目前为止一切顺利

如预期的那样,

  

dta Object {item:Object,reference:n.fn.init 1,element:n.fn.init 1,position:Object}

正如所料。但是,

  

jstree.min.js:5未捕获的TypeError:无法读取未定义的属性'parent'

     

at a.jstree.plugins.contextmenu。 (jstree.min.js:5)

     

在HTMLDivElement.d(jquery.js:2)

     

在HTMLDivElement.dispatch(jquery.js:3)

     

在HTMLDivElement.r.handle(jquery.js:3)

     

at Object.trigger(jquery.js:3)

     

在HTMLDivElement。 (的jquery.js:3)

     

在Function.each(jquery.js:2)

     

at n.fn.init.each(jquery.js:2)

     

在n.fn.init.trigger(jquery.js:3)

我无法理解为什么会出现错误或者该怎么做。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

我重新开始回到原点。

我在jsTree中发现您将使用'contextmenu'插件,然后在实施jsTree $ let a = "v".data(using: .utf8)! + [1, 2] // Data with bytes [0x76, 0x1, 0x2]

时还必须包含check_callback回调

我最初忽略了这个细节。

现在如果完全有意义

  

“无法读取未定义的属性'parent'

错误来自。

非常感谢 Nikolay Ermakov 和我一起待在那里。