首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript - chatjs甜甜圈悬停时运行脚本

Javascript - chatjs甜甜圈悬停时运行脚本
EN

Stack Overflow用户
提问于 2017-01-14 03:44:31
回答 1查看 66关注 0票数 2

这个问题看起来很简单,但我不知道如何解决它。

我有这个codepen。我想要的是运行一个使用实际标题的脚本。例如,如果带有"S: 7“的部分悬停,我想要console.log() "S: 7”。你能帮帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-14 05:42:07

我不熟悉chart.js,所以this codepen在某种程度上是一个黑客,但在大多数情况下,它似乎是有效的。它使用@drinor对this question的回答中的代码。

一个潜在的问题是,如果您将鼠标悬停在特定的切片上,然后将鼠标从饼图上移开,然后再次将鼠标悬停在同一切片上,则不会向控制台写入任何内容。如果在这种情况下确实需要控制台输出,似乎可以通过添加一个设置currentIndex = -1mouseout事件来实现。

代码语言:javascript
复制
<!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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41642330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档