我有一個使用chart.js創建的條形圖。一切工作正常頁面加載,但當我改變使用daterangepicker的時間框架,出現一個小故障。新數據被引入,但是當我將鼠標懸停在上面時,會顯示舊數據。我是新來的JavaScript,所以我希望得到一些幫助。它看起來像我需要納入.destroy();不知何故,但我不知道如何。我的代碼片段低於:Chartjs條形圖顯示懸停時的舊數據
function loadFTPRChart(startdate, enddate){
var BCData = {
labels: [],
datasets: [
{
label: "Pass %",
backgroundColor: "#536A7F",
data: [],
stack: 1
},
{
label: "Fail %",
backgroundColor: "#e6e6e6",
data: [],
stack: 1
},
{
label: "Auto %",
backgroundColor: "#286090",
data: [],
stack: 2
},
{
label: "Manual %",
backgroundColor: "#f0f0f0",
data: [],
stack: 2
}
]
};
$.getJSON("content/FTPR_AM_Graph_ajax.php", {
startdate: startdate,
enddate: enddate,
location: "M"
})
.done(function(data) {
console.log("data", data);
$.each(data.aaData, function(key, val) {
if(val == ""){return true}
BCData.labels.push("Coater " + val[0]);
BCData.datasets[0].data.push(parseFloat(val[2]));
BCData.datasets[1].data.push(parseFloat(100-val[2]));
BCData.datasets[2].data.push(parseFloat(val[1]));
BCData.datasets[3].data.push(parseFloat(100-val[1]));
});
var option = {
responsive:true,
};
console.log("BCData", BCData);
//console.log("PrevData", data);
var ctx = document.getElementById("mybarChart2").getContext("2d");
new Chart(ctx, {
type: 'groupableBar',
data: BCData,
options: {
scales: {
yAxes: [{
ticks: {
max: 100,
},
stacked: true,
}]
}
}
});
});
}
loadFTPRChart($('#reportrange').data().daterangepicker.startDate.format('MM/DD/YYYY'), $('#reportrange').data().daterangepicker.endDate.format('MM/DD/YYYY'));
什麼是破壞原始數據,這樣,當我更改日期範圍,將鼠標懸停在新的圖表,舊的數據不再閃爍的最好方法?
由於
對不起,我知道我應該知道如何實施你的建議,但是你認爲你可以給我多一點想法什麼/如何做到這一點? 位:HTML: – Djones12
當然,它非常簡單。我用兩種方法的例子更新了我的答案。既然你沒有提供一個工作jsfiddle(或類似的東西),我當然不能測試這個,但你應該能夠用這些例子運行。 – jordanwillis
非常感謝!你提供的第二個選項是可行的。這有點慢,我會試圖找出爲什麼/加速它的方法。如果您有任何建議,我全都聽過。但就目前而言,我真的很感謝幫助,並將其標記爲正確的答案。 – Djones12