jquery - dc.js 和 JQuerys 文档准备好不起作用
问题描述
我在我的网页上添加了一些带有 dc.js 的图表。对于我所有其他的东西,我使用 jQuery.ready 和这段代码:
<html>
<head>
....
<script>
$(document).ready(function () {
//Javascriptcode
};
</script>
</head>
</body>
<div id="chart"></div>
....
</body>
</html>
我创建图表并将其绑定到 div: chart。在这种情况下,它不起作用。(看不到任何图表)当我将位置从div更改为head时,它可以工作..?我已经尝试过:
document.addEventListener("DOMContentLoaded", function(event) { js-code..});
但我遇到了同样的问题。(没有错误消息)。我使用 JQuery,因为我用 c3.js 创建了一些其他图表而没有任何问题..
我的错误是什么?
<html>
<head>
<meta charset="utf-8">
<link href="https://dc-js.github.io/dc.js/css/dc.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<script src=" https://dc-js.github.io/dc.js/js/crossfilter.js"></script>
<script src="https://dc-js.github.io/dc.js/js/dc.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io.connect('localhost:3000');
var Flightnumbers = dc.rowChart("#chart1");
socket.emit('Flightnumbers');
$(document).ready(function () {
// console.log("ready!");
dc.config.defaultColors(d3.schemeSet1);
socket.on('Flightnumbers-b', function (data) {
console.log(data);
var tmp = crossfilter(data);
var FlightNumbersDim = tmp.dimension(function (d) {
return d["Target"];
});
var FlightNumbersGroup = FlightNumbersDim.group();
dc.renderAll();
});
});
</script>
</head>
<body>
<div id="chart1"></div>
</body>
</html>
解决方案
问题出在这一行
var Flightnumbers = dc.rowChart("#chart1");
在元素实际出现在 HTML 中之前调用它。所以你也应该将此行移动到$(document).ready(function () {})
包装器,然后它会在文档已经构建时查找元素。
请注意,该Flightnumbers
变量将无法再全局访问。window.Flightnumbers =
如果出于任何原因需要,可以将其直接设置为全局命名空间。但是,您应该避免使用全局命名空间,尽管它在这里是题外话。
推荐阅读
- spring-boot - org.postgresql.util.PSQLException:错误:AND 的参数必须是布尔类型,而不是记录类型
- postgresql - 在 plpgsql 过程/函数中使用“pg_sleep”同时使用多个工作后台进程是不好的做法吗?
- selenium - 如何滚动到最后 Selenium Python
- react-native - 如何修复 withAuthenticator(App) 渲染错误
- web-applications - AWS ECS 中的 Fargate 网络服务器在空闲期后响应时间很长(但有时没有)
- python - pyhon Kivy在按下时更改按钮颜色
- c# - 如何在 ASP.NET MVC 中存储来自 webapi(如 DbContext DbSet)的数据?
- flutter - BoxPainter createBoxPainter([onChanged]) => 参数 onChanged 不能有 null 值
- c++ - 避免在 CMake 项目中克隆多个 git 子模块
- c# - 如何安装驱动程序作为 Winforms 应用程序的一部分