2
この質問は簡単に思えるかもしれませんが、解決方法はわかりません。Javascript - chatjs donut runスクリプトonホバー
私はこれがcodepenです。私が望むのは、実際のタイトルを使ってスクリプトを実行することです。例: "S:7"のセクションが上がっている場合、console.log()
"S:7"にしたいです。あなたは助けてもらえますか?
この質問は簡単に思えるかもしれませんが、解決方法はわかりません。Javascript - chatjs donut runスクリプトonホバー
私はこれがcodepenです。私が望むのは、実際のタイトルを使ってスクリプトを実行することです。例: "S:7"のセクションが上がっている場合、console.log()
"S:7"にしたいです。あなたは助けてもらえますか?
私はchart.jsに慣れていないので、this codepenはややハックですが、ほとんどの場合、動作するようです。それはthis questionへの@ drinorの答えのコードを使用します。
潜在的な問題は、特定のスライス上にマウスを移動してからマウスをパイから外し、再び同じスライス上にマウスを置くとコンソールに何も書き込まれないことです。この場合コンソール出力が必要な場合は、mouseout
イベントを追加してcurrentIndex = -1
に設定することができます。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.2/Chart.min.js"></script>
<style type="text/css">
.container {
width: 80%;
margin: 15px auto;
}
</style>
</head>
<body>
<div class="container">
<h2>Chart.js — Pie Chart Demo (apples)</h2>
<div>
<canvas id="myChart"></canvas>
</div>
</div>
<script type="text/javascript">
var currentIndex = -1;
Chart.defaults.global.hover.onHover = function(x) {
if(x[0]) {
var index = x[0]._index;
if (index !== currentIndex) {
currentIndex = index;
console.log(x[0]._model.label + ': ' + x[0]._chart.config.data.datasets[0].data[index]);
}
}
};
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ["M", "T", "W", "T", "F", "S", "S"],
datasets: [{
backgroundColor: [
"#2ecc71",
"#3498db",
"#95a5a6",
"#9b59b6",
"#f1c40f",
"#e74c3c",
"#34495e"
],
data: [12, 19, 3, 17, 28, 24, 7]
}]
}
});
</script>
</body>
</html>