0
我使用的是Donut3D.js庫(基於D3.js圖庫)(http://bl.ocks.org/NPashaP/9994181)。Donut3D.js 3d餅圖更改數據事件不發射
我創建了一個javascript事件偵聽器來偵聽選擇選項Html組合框控件中的更改。用戶從組合框中選擇一個選項,並根據所選選項,從SQL Server數據庫中提取三維餅圖的數據,並重新繪製圖表。但是,我的圖表不是渲染,但是當我處於Firebug調試模式時,它將被重新繪製。我使用Firefox和Firebug進行調試。我的Web應用程序使用MVC模式和C#編程語言。以下是代碼片段:
局部視圖1:
<select id=hucDdl></select>
局部視圖2:
<script>
$(document).ready(function(){
//Event listener when selection changes
$("#hucDdl").change(function() {
//Get huc value
var huc;
if($("#hucDdl").val() != null){
huc = $("#hucDdl").val();
});
//Call function
ChangeData();
});
function ChangeData(){
<blockquote>var huc = $("#hucDdl").val();
var arr = [];
var lulcData = null;
//get data from SQL Server
$.ajax({<br/></blockquote>
url: "/Home/GetBaseLulcJson/",
type: "GET",
data: {huccode: huc},
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(result){
arr = result;
},
error: function(data){
}
})
lulcData = [
{ "label": "Cropland", "value": arr[0], "color": "#ffb3ba" },
{ "label": "Forest", "value": arr[1], "color": "#ffdfba" },
{ "label": "Pasture", "value": arr[2], "color": "#ffffba" },
{ "label": "Rangeland", "value": arr[3], "color": "#baffc9" },
{ "label": "Urban", "value": arr[4], "color": "#bae1ff" }
];
//Draw the 3d pie chart
Donut3D.draw("blulcpie", getData(), 90, 50, 90, 40, 30, 0);
function getData(){
<blockquote>return lulcData.map(function (d) {
return { label: d.label, value: +d.value, color: d.color };
});
}
});
</script>
的ChangeData()函數不觸發選擇更改。
有沒有人知道如何讓數據更改時重新繪製圖表?
從SQL Server獲取的數據是正確的。我只是不確定是什麼原因導致圖表不能重新繪製。
也許一個例子與實際的代碼會幫助?你是否從控制檯收到任何錯誤? – delagroove
繪製三維餅圖的線是繪製餅圖所需的全部內容。 JavaScript庫位於我引用的鏈接中。根本沒有Javascript錯誤。當我在Firebug中並逐行瀏覽Javascript代碼時,它正在做我想做的事情。但是當我退出調試模式時,它只是不顯示圖表。 – user2770113
我想知道這是否是一個jQuery的問題,而不是我的圖表庫問題。我正在使用jquery-1.10.2.js版本。 – user2770113