teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

再調査していくなかで、変更しました

2020/10/17 12:26

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,49 +4,38 @@
4
4
  グラフにjQueryの内容が反映されない。
5
5
 
6
6
  --------------------------
7
- SQLDataSourceの結果をStackedBar100を使ってす。
7
+ SQLDataSourceの結果をStackedBar100、URLで遷移できるようにしたす。
8
+ これをchart.jsを使って実現しようとしています。
8
9
 
10
+ 調べてみると、
9
- インターネットの例を見よう見まねきます。
11
+ chart.js実現すためにはcanvasタグで囲といけないようなので、
10
- ネットの例では、使うデータはSQLDataSourceから呼び出されたものではなく、datasetsに[12, 19, 3, 5, 2, 3]といった形で定義されています。またhtmlのタグではcanvasタグを使っていました。
11
- <canvas id="Chart1"></canvas>
12
+ $("#Chart1").wrapAll($("<canvas id=" + "Chart1"+ "></canvas>"));
13
+ と記述しました。
12
14
 
13
- そこで、私が作っているプログラムでもcanvasで囲むべく、
14
- $("#Chart1").prepend($("<canvas></canvas>"));
15
- を書いたのですがやら違うようでした。
15
+ しかし、うまくいきませんでした。
16
16
 
17
17
  私の知識不足ということもあり、何が原因かわからない状態です。
18
18
  原因をご教授いただけないでしょうか。
19
19
  ```
20
20
  <body>
21
- <script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.1/dist/Chart.min.js"></script>
21
+ <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
22
22
 
23
23
  <script type="text/javascript">
24
24
  $(document).ready(function () {
25
- $("#Chart1").prepend($("<canvas></canvas>"));
25
+ $("#Chart1").wrapAll($("<canvas id=" + "Chart1"+ "></canvas>"));
26
- var ctx = document.getElementById("myChart").getContext('2d');
26
+ const ctx = document.getElementById('Chart1').getContext('2d');
27
-
28
- var myChart = new Chart(ctx, {
27
+ const chart = new Chart(ctx, {
29
28
  type: 'stackedbar100',
30
-
31
- options: {
32
- scales: {
33
- yAxes: [{
34
- ticks: {
35
- beginAtZero: true
36
- }
37
- }]
29
+ });
38
- },
30
+ document.getElementById('Chart1').addEventListener('click', e => {
39
- events: ['click'],
31
+ const elements = chart.getElementAtEvent(e);
40
- onHover: function (e, el) {
41
- if (!el || el.length === 0) return;
32
+ if (elements.length) {
42
- console.log('onHover : label ' + el[0]._model.label);
33
+ alert(`${elements[0]._index}: ${elements[0]._model.label}`);
43
- },
44
- onClick: function (e, el) {
45
- if (!el || el.length === 0) return;
46
- console.log('onClick : label ' + el[0]._model.label);
47
- }
48
34
  }
49
- });
35
+ });
36
+ });
37
+
38
+
50
39
  </script>
51
40
 
52
41