2012-06-05 77 views
1

我試圖在單個頁面中顯示x個不同的高圖。每個圖表都有自己的.js選項文件,用於獲取數據並進行配置。這些文件的鏈接嵌入在圖表自己的HTML文件中,該文件包含要呈現的div。Highcharts IE問題jQuery ajax加載

每個圖表的HTML文件時加載到通過jQuery的與 「reportsWindow」 的ID的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> 

jQuery的代碼加載HTML網頁:

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(所有版本)的第一個圖表裝入不正確運行,這是因爲如果在裝載和appendi ng在中途停止,但是如果我再次請求加載報告頁面,則會顯示兩個圖表。 圖表加載完美的FF,鉻等

我到目前爲止試圖推遲$ .each()與.delay()就在append之前,並試圖有ajax調用內「setTimeout ()「 沒有成功。

OBS:graphPaths將在以後使用數據庫輸入填充,這就是爲什麼我必須動態生成圖表的原因。此外,圖表對象具有唯一的名稱。而圖表生成代碼位於$(document).ready()內部。

我在尋找的東西是這樣的:Create six chart with the same rendering,different data (highchart) 但是我使用了不同的圖表,其中的例子是用相同的圖表。

有什麼建議嗎?

回答

1

當在一個頁面上動態加載多個圖表時,IE顯然存在問題。通過從庫中刪除以下代碼來解決問題

// setup default css 
     doc.createStyleSheet().cssText = 
      'hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke' + 
      '{ behavior:url(#default#VML); display: inline-block; } ';