我在IE和Chrome中检查了许多关于jsTree问题的线索,但没有一个解决方案帮助过我。
我在文件中添加了正确的doctype。 我用最后一个版本来纠正“”错误。
但IE和Chrome中仍然没有任何内容(甚至不是“loading ...”消息),但在Firefox中完美运行(无论3种浏览器的版本如何)。
您可以使用以下地址在不同的浏览器中直接生成并观察此错误: http://lbgi.igbmc.fr/orthoinspector/dbquery/?stype=text
这是我的树初始化代码(在jquery脚本中):
var compressedTreeSkeleton = generateCompressedJSONData(organismTreeSkeleton);
// Generate the tree. Data provided is JSON (JavaScript Object Notation).
$(function(){
$("#treeview").jstree({
"json_data" : { "data" : compressedTreeSkeleton },
"types" : {
"types" : {
"inner_node" : {
"icon" : {
"image" : "images/node_icon_closed.png"
}
},
"leaf_node" : {
"icon" : {
"image" : "images/leaf_icon_1.png"
}
}
}
},
"search" : {
"case_insensitive" : true
},
"plugins" : ["themes", "ui", "json_data", "checkbox", "types", "search"]
});
});
}
以下是该代码第一行(变量compressedTreeSkeleton)生成的对象的概述,从chrome控制台输出中提取(您也可以直接在网站上查看它)。它是一个“对象”表,每个表包含树的节点信息。在创建树之前,通过postgresql数据库查询生成此信息(对象)。
[ Object {
date: "2029-05-01"
genus: "Oryza"
identifier: "LOC"
phylo_order: "59"
phylum: "Eukaryota;Viridiplantae;Streptophyta;Streptophytina;Embryophyta;Tracheophyta;Euphyllophyta;Spermatop…"
pk_bank: "1"
pk_organism: "1"
species: "sativa"
taxid: "39947"
__proto__: Object } ,
Object, Object, Object, Object, (...) ]
在Chrome控制台中启动以下错误:
Uncaught TypeError: Object [object Object] has no method 'jstree'
在IE中这个:
Object doesn't support this property or method
在Firefox中正常工作......
我对这一切都很失落。知道我应该在哪里看? 谢谢你的建议。
答案 0 :(得分:1)
问题是HTML中的这个标记:
<script type="text/javascript" src="js/jtree/\\_lib/jquery.js"></script>
Chrome和IE解决了这个拙劣的路径,并在jquery.tools.min.js中加载的jQuery的另一个版本之上加载了这个版本的jQuery。由于jstree是在非工具版本之前加载的,因此它将其方法添加到工具版本中,而工具版本会被非工具版本覆盖。在Firefox中,工具版本永远不会被覆盖,因为找不到路径,jstree()
和所有相关方法都可用。
底线:删除那个拙劣的脚本标记和/或用jquery.tools解决版本问题。