2

我正在使用名为collective.virtualtreecategories. 但是,我不断收到一个奇怪的 javascript 错误,并且无法显示树。

在浏览器的错误控制台上,我得到以下信息:

$tree.tree is not a function

这是产生错误的代码部分:

$tree.tree({
    data: {
        type: "json",
        url: "@@vtc-categories-tree.json",
        async: false
    },
    lang: {
        new_node: "New category"
    },
    rules: {
        deletable: ["folder"],
        renameable: ["folder"],
        draggable: "none",
        droppable: "none",
    },
    callback: {
        beforechange: function(node, tree_obj) {
            return before_change_node()
        },
        onselect: function(node, tree_obj) {
            node_selected(node)
        },
        oncreate: function(node) {
            jq(node).attr('rel', 'folder')
        },
        onrename: function(node, lang, tree_obj, rb) {
            old_id = node.id // may be undefined (new node)
            new_name = jq(node).children("a:visible").text();
            // shared code. Server determines if creating/renaming by the old_name value
            jq.ajax({
                type: 'POST',
                url: "vtc-category-added-renamed",
                data: {
                    'category_path': selected_category(node),
                    'old_id': old_id,
                    'new_name': new_name
                },
                success: function(data) {
                    jq.jGrowl(data.msg, {
                        life: 1500
                    });
                    // set/change node id
                    if (data.result) {
                        node.id = data.new_id
                    }
                },
                dataType: 'json',
                traditional: true
            })
        },
        beforedelete: function(node, tree_obj) {
            jq.ajax({
                type: 'POST',
                url: "vtc-category-removed",
                data: {
                    'category_path': selected_category(node)
                },
                success: function(data) {
                    jq.jGrowl(data.msg, {
                        life: 3000
                    });
                },
                dataType: 'json',
                traditional: true
            });
            return true;
        }
    }
});​

完整的代码清单可以在这里找到

有人可以帮我解决这个问题吗?

更新: 我也许应该补充一点,这是以前在不同的环境中工作的。现在,我刚刚重新创建了项目,这就是我得到这个错误的时候。

4

3 回答 3

0

据我所知,您的代码$tree不是函数,它是第 89 行的元素 var $tree = jq('ul#VTCTree');

因此我假设.tree()是一个 JQuery 小部件并且没有按预期工作?

刚刚看到一些评论和更新。您是否检查了树插件/小部件的路径/文件包含?

于 2012-10-03T13:15:47.750 回答
0

在浏览器的错误控制台上,我得到以下信息:

如果您的浏览器是 Internet Explorer,则此处的额外逗号

droppable: "none",

是一个广为人知的问题。

对于 Firefox 来说不是问题,但会产生意想不到的结果,例如以下数组中的 3 个元素。但长度 = 4

myArr = [1,2,3,,]

另外,请检查此https://stackoverflow.com/a/5139232/982924

于 2012-10-03T13:36:32.690 回答
0

我遇到了同样的问题,即使我加载了 jquery 并加载了 jquery.filetree.min 插件。我错过了也是必需的 jquery UI js。

于 2016-01-02T16:29:38.760 回答