我正在使用一个名为collective.virtualtreecategories的附加产品在plone中生成一棵树。但是,我一直收到一个奇怪的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;
}
}
});完整的代码清单可以找到这里
有人能帮我解决这个问题吗?
更新:--也许我应该补充一下,这以前是在不同的设置下工作的。现在,我刚刚重新创建了这个项目,然后我就得到了这个错误。
发布于 2012-10-03 13:15:47
据我从您的代码中可以看出,$tree不是一个函数,它是第89行var $tree = jq('ul#VTCTree');中的一个元素
因此,我假设.tree()是一个JQuery小部件,不像预期的那样工作?
刚刚看到了一些评论和更新。您检查过树插件/小部件的路径/文件包含吗?
发布于 2012-10-03 13:36:32
在浏览器的错误控制台上,我得到以下信息:
如果您的浏览器是,则这里有额外的逗号
droppable: "none",
是一个众所周知的问题。
对于Firefox来说没有问题,但是会给出意想不到的结果,就像下面的数组中的3个元素。但长度=4
myArr = [1,2,3,,]
发布于 2016-01-02 16:29:38
我也遇到了同样的问题,尽管我已经加载了jquery并加载了jquery.filetree.min插件。我错过了jquery,这也是必需的。
https://stackoverflow.com/questions/12709120
复制相似问题