【发布时间】:2015-10-29 22:17:23
【问题描述】:
我有一个关于 javascript 函数如何在 HTML 中执行的基本问题。我正在使用 dimple.js 创建一个图表,并希望在通过 javascript 创建图表后选择一个 svg 元素。然而,即使我的 jQuery 选择器是我页面上的最后一点脚本,它也不会执行,因为实际上还没有创建凹坑图。这是我正在使用的代码:
<html>
<head>
<meta charset="utf-8">
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://dimplejs.org/dist/dimple.v2.0.0.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
function draw(data) {
"use strict";
var margin = 75,
width = 1400 - margin,
height = 600 - margin;
d3.select("body")
.append("h2")
.text("World Cup Attendance")
var svg = d3.select("body")
.append("svg")
.attr("width", width + margin)
.attr("height", height + margin)
.append('g')
.attr('class','chart');
var myChart = new dimple.chart(svg, data);
var x = myChart.addTimeAxis("x", "year");
myChart.addMeasureAxis("y", "attendance");
x.dateParseFormat = "%Y";
x.tickFormat = "%Y";
x.timeInterval = 4;
myChart.addSeries(null, dimple.plot.line);
myChart.addSeries(null, dimple.plot.scatter);
myChart.draw();
};
</script>
</head>
<body>
<script type="text/javascript">
d3.tsv("world_cup.tsv", draw);
debugger
$('.example').doSomething();
</script>
</body>
</html>
我假设页面和图形将在我将调试器语句放在底部的位置完全加载,因为那是最后一行代码。但是,当页面在那里暂停时,实际上并没有创建图表。在调试器行之后,页面会通过dimple 库中的一系列函数来创建svg 图。显然,紧随其后的 jQuery 行不起作用,因为还没有要选择的元素。
我认为我在 javascript 方面缺少一些基本的东西。如何让我的 jQuery 仅在 酒窝完成后才运行?
【问题讨论】:
标签: javascript jquery html svg dimple.js