我正在尝试将以下桑基示例合并到django项目中: http://bl.ocks.org/d3noob/5028304
我所有的javascript都在外部工作表中,并在javascript中调用它们.html它正在被拉入我的base.html。 问题是桑基.js文件无法识别 d3。
未捕获的引用错误:未定义 d3(匿名函数)@ sankey.js:22(索引):83 未捕获的类型错误:d3.sankey 不是一个函数
我的 sankey .js 部分实际代码如下:
$.getScript("../static/js/d3.js", function(){
alert("d3 loaded but not necessarily executed.");
});
$.getScript("../static/js/d3.min.js", function(){
alert("d3.min loaded but not necessarily executed.");
});
$.getScript("../static/js/d3.v3.min.js", function(){
alert("d3.v3.min loaded but not necessarily executed.");
});
d3.sankey = function() {
任何帮助将不胜感激。
您可以尝试将调用 d3.sankey
放在 $.getScript
的回调中。
或者只使用.done()
功能,例如:
$.getScript("../static/js/d3.v3.min.js")
.done(function() {
d3.sankey = function() {} // Call your logic here
});
这样,应在使用之前定义d3
。
经过不必要的长时间修补,我意识到我正在调用我的sankey.js脚本,然后在javascript中调用d3.v3.min.html。
为了解决,我只是将我的 d3.v3.min 库移到了我的 sankey.js 调用上方。
谢谢!!!