Вообще говоря, необходимо вытолкнуть данные, которые вы хотите удалить, из диаграммы, затем нажать новые данные и, наконец, обновить диаграмму. Таким образом, предыдущие данные не будут отображаться при зависании.

я есть гистограмма, созданная с помощью chart.js. Все отлично работает при загрузке страницы, но когда я изменяю временной интервал с помощью указателя даты, появляется сбой. Вводятся новые данные, но когда я наводю на них курсор, отображаются старые данные. Я новичок в javascript, поэтому я надеюсь получить помощь. Похоже, мне нужно включить .destroy (); как-то, но я не знаю как. Фрагмент моего кода ниже:

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'));

Каков наилучший способ уничтожить исходные данные, чтобы при изменении диапазона дат и наведении указателя мыши на новый график старые данные больше не мерцали?

Спасибо

Ответы на вопрос(6)

Ваш ответ на вопрос