javascript - 单击按钮后如何更新变量
问题描述
我只是不知道如何单击按钮并将不同的数据集传递给变量,以便在按下特定按钮后动态更新我的 Chart.js 图形。我来自python,最近才开始学习js,这样的代码通常在python中工作。请看我的代码
<div id="parentElementID">
<button type="button" id="1">Button1</button>
<button type="button" id="2">Button2</button>
<button type="button" id="3">Button3</button>
</div>
<div class="container">
<canvas id="myChart"></canvas>
</div>
<script type="text/javascript">
var spins15 = [1, 1, 1]
//These should update the value of a variable on click. But apparently they don't
$(document).ready(function(){
$('#1').click(function(){
spins15=[15, 25, 35];
});
});
$(document).ready(function(){
$('#2').click(function(){
spins15=[25, 31, 24];
});
});
$(document).ready(function(){
$('#3').click(function(){
spins15=[50, 11, 25];
});
});
//Chart.js part
let myChart = document.getElementById('myChart').getContext('2d');
var options = {
responsive: true,
maintainAspectRatio: true,
};
let someChart = new Chart(myChart, {
type:'bar',
data:{
labels:['0', '32', '15'],
datasets:[{
label:'Some chart',
//This variable below should be updated in order to update the barchart
data:spins15
}]
},
options:options
});
//
</script>
解决方案
我认为这是你需要的:
function addData(chart, label, data) {
chart.data.labels.push(label);
chart.data.datasets.forEach((dataset) => {
dataset.data.push(data);
});
chart.update();}
function removeData(chart) {
chart.data.labels.pop();
chart.data.datasets.forEach((dataset) => {
dataset.data.pop();
});
chart.update();}
推荐阅读
- html - 如何使用-webkit-box在省略号后添加链接?
- ios - SwiftUI:从模态框内转到新视图
- powershell - 如何在powershell中获取没有实例名称的总CPU使用百分比
- docker - Docker 为 webpacker_dev_server 加载了错误的端口
- azure - 如何在 Cosmos DB 中选择数值字段?
- flutter - 将对象传递给flutter中的小部件还是传递对象的单个属性更好?
- php - Laravel 资源 API 自定义外部数据包装器 $wrap
- bash - bash:我如何 cd 进入写在 .txt 文件第一行的目录
- python - 如何在 python 中读取“应用程序和服务日志”下的事件日志?
- javascript - 如何将 ReactJS 中的应用程序状态传递到后端?