页面上有多个NVD3图表.如何简化javascript代码和包装函数
Multiple NVD3 charts on page. How to simplify the javascript code and wrap function?
我目前在网站上使用NVD3来绘制图表,其中一个页面有6个图表。目前,我为这6个图分别添加了6个函数,但我觉得这不是最优雅的解决问题的方法。下面是相关html/javascript代码的示例:
<div id="chicago" class='with-3d-shadow with-transitions chart'>
<svg> </svg>
</div>
nv.addGraph(function() {
var chicago = nv.models.lineChart()
.margin({top: 30, right: 60, bottom: 50, left: 80})
.x(function(d,i) { return i })
.color(d3.scale.category10().range());
chicago.transitionDuration(500);
chicago.xAxis.tickFormat(function(d) {
var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
if (dx > 0) {
return d3.time.format('%x')(new Date(dx))
}
return null;
});
chicago.yAxis
.axisLabel('Price ($/Dth)')
.tickFormat(function(d) { return '$' + d3.format(',.2f')(d) });
nv.log(testdata);
d3.select('#chicago svg')
.datum(testdata)
.call(chicago);
nv.utils.windowResize(chicago.update);
return chicago;
});
我该如何包装该函数,以便我可以多次重用它,而不必重复它并替换每个图形的名称(在本例中为'chicago') ?
这很简单,这是一种方法。
HTML:<div id='chart1'>
<h3>My Chart 1</h3>
<svg></svg>
</div>
<div id='chart2'>
<h3>My Chart 2</h3>
<svg></svg>
</div>
<div id='chart3'>
<h3>My Chart 3</h3>
<svg></svg>
</div>
JavaScript: // Call my charts , pass in my div id here
drawChart('chart1');
drawChart('chart2');
drawChart('chart3');
//Donut chart example
function drawChart(div) {
var width = height = 400;
nv.addGraph(function () {
var chart = nv.models.pieChart()
.x(function (d) {
return d.label
}).y(function (d) {
return d.value
}).width(width)
.height(height)
.showLabels(true)
.labelThreshold(.05)
.labelType("percent")
.donut(true);
d3.select("#" + div + " svg")
.datum(exampleData())
.attr('width', width).attr('height', height)
.transition().duration(350)
.call(chart);
return chart;
});
}
相关文章:
- 在Scroll上更新CSS代码:简化它就不会了'不要使用JQuery和最简单的Javascript
- Javascript,简化了对象转换
- 在JavaScript中简化开关案例
- 需要简化这一长javascript行
- 纯javascript的简化效果
- 简化此If语句,使其不会't重复代码-Javascript
- Javascript对象:这两个值有何不同
- 如何简化Javascript动态ID
- JavaScript:基于模块的Todo列表需要简化
- 我如何简化我的Javascript代码;显示/隐藏在DIV上”;作用
- 如何简化一个长 javascript switch case 语句
- 简化 JavaScript 对象的 JSON 输出
- 简化此JavaScript代码块(IF)
- 简化 JavaScript 变量
- Sencha Touch 2 它与我对 html5/javascript Web 开发的知识有何关系
- 简化这个不必要的JavaScript
- 将 javascript 变量简化为单个语句
- 如何将这个javascript片段简化为更有用的内容
- 在javascript中简化SVG路径
- Javascript代码简化小抄