当前位置: 代码迷 >> JavaScript >> 在单独的HTML,JS和CSS文件中打破D3不起作用
  详细解决方案

在单独的HTML,JS和CSS文件中打破D3不起作用

热度:69   发布时间:2023-06-05 09:28:23.0

大多数D3示例都将HTMLJavaScriptCSS都放在同一个文件中。 使用这个例子 ,我试图将这些文件分解为单独的文件(这样我就可以将D3嵌入到网站中,将文件放在适当的位置)。

当所有在一个文件中,让我们说index.html ,一切正常。 当我将它分成3个文件: index.htmlsankey_create.jsstyle.cssHTML标题(我插入<h1>Title</h1> )呈现,但SVG没有。

可能的问题#1:文件引用

一切都在一个文件夹中,我认为我在header正确引用了单独的文件( Firefoxconsole说所有文件都已加载):

<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script src="sankey.js"></script>
<script src="sankey_create.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">

可能的问题#2:绑定到外部HTML元素

这个例子的工作方式是D3 SVG绑定到的<p id="chart">元素:

var svg = d3.select("#chart").append("svg") // This line is in sankey_create.js

我不确定我是否需要以不同方式引用元素,因为它们位于不同的文件中。

我只包含了我认为可能导致此问题的代码,但如果需要,我可以提供更多代码/信息。

要分析您需要从语义上理解的问题,脚本标记可以被它们引用的代码替换,并且在处理下一个节点之前执行引用的代码,因此它与索引文件中的代码相同。脚本标签的位置。

  相关解决方案