我正在尝试在一个页面中显示x个不同的高亮图。每个图表都有自己的.js选项文件,它可以获取数据并进行配置。这些文件的链接嵌入在图表自己的HTML文件中,该文件包含要呈现的div。
这些图表中的每一个html文件都是根据请求通过jQuery加载到id为“reportsWindow”的div中(参见下面的代码)
HTML页面布局:
<script type="text/javascript" src="/graf/revenue/revenueGraphScript.js"></script>
<div class="clear">
<div id="revenue" style="width: 600px; height: 200px;"></div>
</div>
用于加载html页面的jQuery代码:
var graphPaths = {
'revChart': '/graf/revenue/revenueChart.html',
'revDisChart': '/graf/revenueDistribution/revenueDistributionChart.html'
}
$.each(graphPaths, function(index, value){
$.ajax({url: value, dataType: "html", success: function(data){
$('#reportsWindow').append(data);
}});
});
问题是,当代码在IE(所有版本)中运行时,第一个图表未正确加载,就像中途停止加载和附加一样,但是如果我第二次请求加载报告页面显示两个图表。 图表在FF,Chrome等中完美加载。
到目前为止,我试图在追加之前使用.delay()延迟$ .each()并试图在“setTimeout()”内部调用ajax而没有成功。
OBS:graphPaths将在以后用DB输入填充,这就是我必须动态生成图表的原因。图表对象也有唯一的名称。图表生成代码在$(document).ready()。
中我正在寻找这样的事情:Create six chart with the same rendering,different data (highchart ) 但我使用的是不同的图表,其中的示例是相同的图表。
有什么建议吗?
答案 0 :(得分:1)
显然,在动态加载的一个页面上有多个图表时,IE存在问题。通过从库中删除以下代码来解决该问题
// setup default css
doc.createStyleSheet().cssText =
'hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke' +
'{ behavior:url(#default#VML); display: inline-block; } ';