当前位置: 首页 > 知识库问答 >
问题:

ChartJs鼠标悬停bug(显示以前的图表)

公孙嘉禧
2023-03-14

我认为我的问题是一个已知的问题,每次我制作一个新的图表,并将鼠标悬停在画布上的一些点上,旧的图表总是会闪进闪出。这是我试图修复它的一个线程,但似乎没有任何效果。我试图重新添加画布,使用破坏,清除,如果语句应该清除它,但什么都没有。

这是我的代码:

var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
    type: 'line',
    data: {
        labels: chartjsDate,
        datasets: [{
            label: 'temp',
            data: chartjsTemp,
            backgroundColor: "rgba(240,240,240,0.5)"
        }]
    }
});

我尝试添加myChart.destroy() 在该代码之前和之后,即使是if(myChart!=null){myChart.destroy();},但仍然是空的。任何关于如何修复的帮助都将不胜感激。我发现的所有其他线程都很旧,它们的解决方案都不起作用。

编辑:我试过一些东西,但没有用:

var myChart;
if (myChart != undefined || myChart !=null) {
    myChart.destroy();
}

共有3个答案

呼延庆
2023-03-14

以上解决方案为我工作,但当我在同一页上有两个图表时,只有一个显示。其他图表正变得空空如也。这是解决办法。

  var ctx = document.getElementById("bar-chart").getContext("2d");  

  //Destroy the previous chart;
  //Rename the "bar" according to your component
  if(window.bar != undefined)
  window.bar.destroy();
  window.bar = new Chart(ctx , {});

如果不更改“条形图”,页面中只会显示一个图表。

郎鸿朗
2023-03-14

我也有这个问题。要解决这个问题,你首先必须声明myChart变量全局,然后尝试这种方式。

//var my chart declare globally.  
let chartData = {
        type: 'line',
        data: {
            labels: chartjsDate,
            datasets: [{
                label: 'temp',
                data: chartjsTemp,
                backgroundColor: "rgba(240,240,240,0.5)"
            }]
        }
        if (typeof(this.myChart) != "undefined") {
            this.myChart.destroy();
        }

        const ctx = this.renderRoot.querySelector('#chart-canvas').getContext('2d');
        this.myChart = new Chart(ctx, chartData);
        this.myChart.update();
周阳波
2023-03-14

解决了的!我在javascript代码上方添加了以下内容:

var button = document.getElementById("submitButton");
submitButton.addEventListener("click", function(){
    myChart.destroy();
});

并将我的提交按钮更改为id为“submitButton”,如下所示:

<input type="submit" class="btn btn-danger" id="submitButton" value="Send" />

这样,每次你按下提交按钮,它就会破坏之前的图表。奇怪的是,当试图使用myChart.destroy();我得到了错误。

 类似资料:
  • 问题内容: 我试图当鼠标移到图像的左下方时出现一个小框。在该框内,将有一个指向其他页面的链接。 这有点类似于我想要的东西,但是盒子要更小并且不连接到图像的边框。 我已经尝试了一切,但找不到答案。而且我不想使用工具提示,更不用说我没有任何JavaScript知识了。我真的希望这是CSS。 问题答案: 这是在CSS3中使用伪元素。 HTML: CSS: 相反,这是使用jquery达到相同结果的一种方式

  • 当我在图表上移动鼠标时,如何修复图表js错误,使其显示旧数据。 我的Js文件 我可以在图表js中显示JSON响应中的数据,但当我在图表上移动鼠标时,它的问题显示了以前的值。 我曾试图破坏这种方法,但并没有奏效。如何预防这个问题??。

  • 我有一个使用chart.js创建的条形图。页面加载时一切正常,但当我使用daterangepicker更改时间范围时,出现了一个小故障。新数据被引入,但当我将鼠标悬停在上面时,旧数据会显示出来。我是javascript新手,希望能得到一些帮助。看起来我需要合并。销毁();不知怎么的,但我不知道怎么做。下面是我的代码片段: 破坏原始数据的最佳方法是什么,以便当我更改日期范围并将鼠标悬停在新图表上时,

  • 我有一个应用程序,我想在

  • 问题内容: libgdx中是否有任何侦听器可以让我检测到鼠标悬停而不是鼠标悬停。在场景2D的按钮类中,您有2种方法isOver和isPressed,但是它们执行相同的操作…还有其他问题吗?还有另一种方法来检测鼠标悬停在actor上吗? 问题答案: 还有的可以连接到和它提供的事件,如下面的: 该事件从根本上来说意味着鼠标开始悬停在角色上,意味着它“离开”了角色的区域。它还有一个事件,您可以使用该事件

  • 问题内容: 有时,我可以选择使用CSS元素:悬停或JavaScript onmouseover来控制页面上html元素的外观。考虑以下情况,其中div包装了输入 我希望输入将鼠标光标悬停在div上时更改背景色。CSS方法是 JavaScript方法是 每种方法的优点和缺点是什么?CSS方法是否适用于大多数Web浏览器?JavaScript比CSS慢吗? 问题答案: :hover的问题是IE6仅在链