脚本功能在Chrome中运行一次,但在Firefox中工作良好
Script function on running once in Chrome but works fine in Firefox
我正在使用NVD3制作几个图形。我在addGraph函数中添加了一个console.log,用于添加一个特定的图形。
我想知道我的代码是否有问题?我对图书馆的使用正确吗?我不知道从哪里开始解决这个问题。
FIREFOX(所有图形都正常显示)
444Add graph在这里叫做
518Add graph在这里叫做
572Add graph在这里叫做
553Add graph在这里叫做
617Add graph在这里叫做
595Add graph在这里叫做
谷歌CHROME
总南总NaN
总NaN
总南总NaN
此处调用Add graph合计108
total 138
共145
共146
代码调用脚本
<script src="../../../data/novus/lib/d3.v2.js"></script>
<script src="../../../data/novus/nv.d3.js"></script>
<script src="../../../data/novus/src/tooltip.js"></script>
<script src="../../../data/novus/src/models/legend.js"></script>
<script src="../../../data/novus/src/models/axis.js"></script>
<script src="../../../data/novus/src/models/scatter.js"></script>
<script src="../../../data/novus/src/models/line.js"></script>
<script src="../../../data/novus/src/models/multiChart.js"></script>
在循环
<script src="../../../data/novus/nv.d3.js"></script>
<script>
var impressions = [];
var clickrate = [];
var trial_impressions = [];
var trial_clickrate = [];
var testdata = [{
"key" : "Impressions",
"type" : "line",
"values" : impressions,
"yAxis" : 1
}, {
"key" : "Clicks",
"type" : "line",
"values" : clickrate,
"yAxis" : 2
}, {
"key" : "T Impressions",
"type" : "line",
"values" : trial_impressions,
"yAxis" : 1
}, {
"key" : "T Clicks",
"type" : "line",
"values" : trial_clickrate,
"yAxis" : 2
}].map(function(series) {
series.values = series.values.map(function(d) {
return {
x : d[0],
y : d[1]
}
});
return series;
});
var chart;
nv.addGraph(function() {
console.log("Add");
chart = nv.models.multiChart().margin({
top : 30,
right : 60,
bottom : 50,
left : 70
}).x(function(d, i) {
return i
}).color(d3.scale.category10().range());
chart.xAxis.tickFormat(function(d) {
var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
if ( typeof (dx) == undefined || d > 1000) {
dx = new Date(d);
} else {
dx = new Date(dx);
}
return dx ? d3.time.format('%x')(dx) : '';
});
chart.yAxis1.tickFormat(d3.format(',.1f'));
v
chart.yAxis2.tickFormat(d3.format(',.4f'));
d3.select('#chart1<?= $chartID?> svg').datum(testdata).transition().duration(500).call(chart);
return chart;
});
</script>
图形所在的div
<div id='chart1<?= $chartID?>' style="width:1110px;height:300px;font-size:11px;margin-top:5px">
<svg></svg>
</div>
我最好的猜测是这些数字有数学计算。在某些情况下,使用函数parseFloat()可以将字符串转换为数字,以便正确地进行数学计算。
相关文章:
- addClass,它更改bg图像,但在第一次加载时没有闪烁
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 在一次点击中发布到两个表单 JavaScript
- jQuery单击事件在一次之后不会触发
- 有没有办法在一次延期失败后继续
- 如何在一次有条件的ng单击时执行多个调用
- 单击时播放/暂停,但仅一次
- 有没有一种方法可以在一次调用中修改每个jquery对象的特定属性
- 如何在一次调用中使用jquery从外部文件中获取多个剑道ui模板
- 如何在一次点击中获取所有选定的选项值ID
- JS - 正则表达式替换在一次调用中发生多次,如何让它运行一次
- 有没有可能的方法可以在一次ASP按钮单击中同时显示JavaScript和服务器端代码中的消息
- 如何使用底座在一次通话中创建多个附件
- jQuery:单击Ajax返回数据,但在第一次调用时显示在警报中
- 进度条函数在一次调用后中断
- 如何在一次点击(而不是整个点击)内执行一次操作
- 有没有办法让我的.js文件自毁,或重命名自己,或者在一次使用后将自己移动到新位置
- 无法在一次选择中选择多个值
- 为什么这个简单的.js在一次迭代后循环停止
- 让窗口在一次单击触发两个页面重定向后保持焦点