2013-04-09 41 views
3

在我的代碼,我初始化這樣的圖表......爲什麼我的高層圖表不能正確重置/銷燬?

<script type="text/javascript"> 
var chart = null, 
defaultOptions = { 
chart: etc etc 
}; 


function drawDefaultChart() { 
    chart = new Highcharts.Chart(defaultOptions); 
} 

$(function() { 
    $(document).ready(function() { 
     drawDefaultChart(); 
    }); 
}); 

</script> 

然後在身體我有

<a href="#" onclick="drawDefaultChart()">Reset</a> 

,但是當你點擊鏈接,它的作用是重新繪製圖形與之前狀態的設置...我不太確定發生了什麼事情。如果我添加chart.destroy();圖表不工作在所有...

function drawDefaultChart() { 
    chart.destroy(); //this makes the chart not work at all 
    chart = new Highcharts.Chart(defaultOptions); 
} 

你可以清楚地看到,我是考取默認選項是假設得到重新繪製圖表....我不明白爲什麼它使用舊的過濾器設置,我即將跳下一座橋,有人可以幫助嗎?

我活生生的例子就在這裏http://goo.gl/sGu0M

//////// UPDATE

我能夠有很多的心血,汗水和眼淚來做到這一點。我最終將數據放到了另一個頁面上的php變量中(爲了節省空間),然後使用php變量調用它,然後每次有人點擊鏈接時我都會調用它。我發現爲了重繪圖形,你必須在每次重新加載所有的數據。根據屏幕上的數據量,PHP使這更容易。

這是最終幫我弄明白的鏈接。 http://jsfiddle.net/dane/YUa3R/34/

+0

'$(function() $(document).ready(function(){' - 就緒處理函數中的就緒處理函數?hmmm – 2013-04-09 18:54:04

+0

你在哪裏更改默認選項?沒有我能看到的地方, - 執行相同的事情...每次你點擊鏈接 – 2013-04-09 18:56:42

+0

不應該我最初的「defaultOptions」大括號設置選項作爲快照? – D3Chiq 2013-04-09 18:58:52

回答

1

首先,我知道highcharts什麼,但它似乎你需要:(從您的實際頁)

function drawDefaultChart() { 
$("#container").empty(); 
    chart = new Highcharts.Chart(defaultOptions); 
} 

function drawDefaultChart() { 
    $("#container").empty().highcharts(defaultOptions); 
} 

或者是:

function drawDefaultChart() { 
    $("#container").highcharts(defaultOptions); 
} 
+0

感謝您的回覆馬克,我嘗試了所有三個,但不幸的是,他們沒有任何區別對圖表的行爲 – D3Chiq 2013-04-10 02:26:39

+1

我發誓上帝即將開始哭泣,http://jsfiddle.net/gh/get/jquery /1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/chart-destroy/我在這裏的官方API的例子,甚至無法得到的例子工作......沒有任何反應摧毀,有「摧毀」已被棄用?你可以在這裏看到實時代碼http://goo.gl/sGu0M – D3Chiq 2013-04-10 03:19:15

+1

我最終能夠弄明白,昨晚LATE,非常感謝你的幫助Mark!我把原來的帖子中的內容做了編輯.. – D3Chiq 2013-04-10 14:26:00

5

總是建議參考API文檔。

使用下面的代碼段來破壞圖表$('#container').highcharts().destroy();

Click here用於工作的解決方案。

相關問題