【问题标题】:How to get rid of old data and of old graph in Chart.js?如何摆脱 Chart.js 中的旧数据和旧图表?
【发布时间】:2016-05-25 02:02:11
【问题描述】:

我正在使用Chart.js 制作图表。

我在使用图表时遇到问题。当我将光标悬停在图表上时,带有旧值的旧图表并没有消失。根据文档,我尝试使用 .destroy() 或 .clear() 来删除旧数据,但它不起作用。

代码如下:

<!DOCTYPE html>
<html>
<head>
	<title>hp mp</title>
	<meta charset="utf-8">
	<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.3/Chart.min.js"></script>
</head>

<body onload="hpmpGraph()">
	<script>
		function hpmpGraph() {
			var hp = document.hpmpForm.HP.value,
				mp = document.hpmpForm.MP.value,
				ctx = document.getElementById('hpmpratio').getContext('2d');
				
			var	data = {
				labels: ["HP","MP"],
				datasets: 
					[{
						data: [hp,mp],
						backgroundColor: ["#EF0000","#0000EF"],
						hoverBackgroundColor: ["#FF0000","#0000FF"]
					}]
			};
			var options = {};

			var myPieChart = new Chart(ctx, {
				type: 'pie',
				data: data,
				options: options
			});
		}
	</script>

	<h1>HP & MP</h1>
	<form name=hpmpForm method=post>
		HP : <input type="text" name="HP" value="100"><br>
		MP : <input type="text" name="MP" value="100"><br>
		<button type="button" onClick="hpmpGraph();">Click</button>
		<h2>Pie graph</h2>
		<canvas id="hpmpratio" height="50"></canvas>
	</form>
</body>
</html>

HP 和 MP 都设置为 100。尝试将 HP 设置为 1000。然后将光标放在图形上并沿圆圈移动。有时,旧图表会出现。

【问题讨论】:

    标签: javascript html graph charts chart.js


    【解决方案1】:

    您不应该重新创建图表,因为这在 v2 中是不允许的,而是您需要替换数据:

    <!DOCTYPE html>
    <html>
    <head>
    	<title>hp mp</title>
    	<meta charset="utf-8">
    	<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.3/Chart.min.js"></script>
    </head>
    
    <body onload="hpmpGraph()">
    	<script>
      	var myPieChart = null
            var config = {options:{},type:'pie'}
    		function hpmpGraph() {
    			var hp = document.hpmpForm.HP.value,
    				mp = document.hpmpForm.MP.value,
    				ctx = document.getElementById('hpmpratio').getContext('2d');
    			
                            config.data = {
    				labels: ["HP","MP"],
    				datasets: 
    					[{
    						data: [hp,mp],
    						backgroundColor: ["#EF0000","#0000EF"],
    						hoverBackgroundColor: ["#FF0000","#0000FF"]
    					}]
    			};
    			if(myPieChart == null){
                                myPieChart = new Chart(ctx, config);
                            }else{
                                myPieChart.update()
                            }
           
          
    		}
    	</script>
    
    	<h1>HP & MP</h1>
    	<form name=hpmpForm method=post>
    		HP : <input type="text" name="HP" value="100"><br>
    		MP : <input type="text" name="MP" value="100"><br>
    		<button type="button" onClick="hpmpGraph();">Click</button>
    		<h2>Pie graph</h2>
    		<canvas id="hpmpratio" height="50"></canvas>
    	</form>
    </body>
    </html>

    <!DOCTYPE html>
    <html>
    <head>
    	<title>hp mp</title>
    	<meta charset="utf-8">
    	<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.3/Chart.min.js"></script>
    </head>
    
    <body onload="hpmpGraph()">
    	<script>
    		function hpmpGraph() {
    			var hp = document.hpmpForm.HP.value,
    				mp = document.hpmpForm.MP.value,
    				ctx = document.getElementById('hpmpratio').getContext('2d');
    				
    			var	data = {
    				labels: ["HP","MP"],
    				datasets: 
    					[{
    						data: [hp,mp],
    						backgroundColor: ["#EF0000","#0000EF"],
    						hoverBackgroundColor: ["#FF0000","#0000FF"]
    					}]
    			};
    			var options = {};
    
    			var myPieChart = new Chart(ctx, {
    				type: 'pie',
    				data: data,
    				options: options
    			});
    		}
    	</script>
    
    	<h1>HP & MP</h1>
    	<form name=hpmpForm method=post>
    		HP : <input type="text" name="HP" value="100"><br>
    		MP : <input type="text" name="MP" value="100"><br>
    		<button type="button" onClick="hpmpGraph();">Click</button>
    		<h2>Pie graph</h2>
    		<canvas id="hpmpratio" height="50"></canvas>
    	</form>
    </body>
    </html>

    【讨论】:

    • 非常感谢,我不知道我不应该重新创建图表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多