2012-03-12 37 views
5

Tôi đang cố gắng tạo trình tạo biểu đồ. Tôi có đầu vào của người dùng cho Tiêu đề và vị trí của chú giải. Tôi muốn người dùng nhập tiêu đề và khi nhấp vào (làm mờ) biểu đồ sẽ được cập nhật với nội dung họ đã nhập.Làm nổi Highcharts sau khi người dùng cập nhật nhãn

Vấn đề là biểu đồ hiển thị lần đầu tiên, tuy nhiên tôi không bao giờ có thể lấy lại char để hiển thị lại. Dưới đây là tóm tắt nhanh về mã.

$('#legendlocation-select').blur(function updateChartLegend(){ 
console.log($('#legendlocation-select').val()); 
if($('#legendlocation-select').val()==='none'){ 
    chartData.legend.enabled = 'false'; 
}else{ 
    chartData.legend.enabled = 'true'; 
    chartData.legend.align = $('#legendlocation-select').val(); 
} 
renderChart(); 
}); 
function renderChart(){ 
if(chart == undefined){ 
    console.log("First Draw"); 
    chart = new Highcharts.Chart(chartData); 
}else{ 
    console.log("Redraw"); 
    chart.destroy(); 
    chart = new Highcharts.Chart(chartData); 
    chart.redraw(); 
} 
}; 

Biểu đồ hiển thị lần đầu tiên và sau đó chỉ là một vùng trắng trống lần thứ hai. Bất kỳ ý tưởng? biểu đồData là một biến với tất cả các tùy chọn trong đó biểu hiện chính xác.

đây là một JSFiddle cho thấy các vấn đề http://jsfiddle.net/zVjrb/3/

+0

Để sử dụng cùng một dữ liệu làm như sau. Sửa đổi phần chart.options. Sau đó vượt qua điều này vào highcharts. var chart = Highcharts.chart (chart.options) – Sean

Trả lời

10

đặn ra Issue. Chi tiết tại đây: http://highslide.com/forum/viewtopic.php?f=12&t=15255

Về cơ bản, hàm Highcharts.charts xóa dữ liệu chuỗi khỏi đối tượng tùy chọn gốc.

Đây là mã làm việc của tôi:

var chart; 
var chartData = { /* you chart data goes here */ }; 
$('#legendlocation-select').blur(function updateChartLegend(){ 
    console.log($('#legendlocation-select').val()); 
    if($('#legendlocation-select').val()==='none'){ 
    chart.options.legend.enabled = false; 
    }else{ 
    chart.options.legend.enabled = true; 
    chart.options.legend.align = $('#legendlocation-select').val(); 
    } 
    renderChart(); 
}); 

function renderChart(){ 
    //console.log(chartData); 
    if(chart == undefined){ 
    console.log("First Draw"); 
    chart = new Highcharts.Chart(chartData); 
    }else{ 
    console.log("Redraw"); 
    chart.options.chart.animation = false; 
    chart = new Highcharts.Chart(chart.options); 
    chart.render(); 
    } 
}; 
+2

Tôi gặp vấn đề tương tự khi tải highchart vào hộp thoại jquery-ui - tôi đã giải quyết nó bằng cách xóa bỏ hộp thoại div đặc biệt gọi $ ('. highcharts-container') .removeClass(). Hy vọng điều này sẽ giúp người khác và tiết kiệm cho họ một giờ hoặc vì vậy nó lãng phí vào tôi. – Ross

Các vấn đề liên quan