Google 图表调用 onmouseover 事件

2024-04-12

我一整天都在研究这个问题,但没有成功。我有一个显示一些数据的谷歌图表,工作得很好。

我一直在研究更详细的图表,包括大约十几个图表图例项目。我想在图表下方显示我的图例,因此我将其位置设置为底部。

但图表生成的“丑陋”分页对我的经理来说并不真正有吸引力。

所以我隐藏了它并重新渲染了图表下方的图例项,而没有使用一些自定义 JavaScript 进行分页(实际上我从这里看到了代码http://jsfiddle.net/asgallant/6Y8jF/2/ http://jsfiddle.net/asgallant/6Y8jF/2/)

var legend = document.getElementById('legend');
    var lis = [];

    var total = 0;
    for (var i = 0; i < data.length; i++) {
        var legendValue = data[i];

        if(legendValue.indexOf("PROVIDER") == -1){

            // create the legend entry
            lis[i] = document.createElement('li');
            lis[i].id = 'legend_' + legendValue;
            lis[i].className = 'legendary';
            lis[i].innerHTML = '<div class="legendMarker" style="background-color:' + colors[i] + ';">' + legendValue + '</div>';

            // append to the legend list
            legend.appendChild(lis[i]);
        }
    }

因此几乎与实际图表图例具有相同的功能,但缺少一件事。当原始谷歌图表图例悬停时,图表上的项目会突出显示,如下例所示:

http://code.google.com/apis/ajax/playground/?type=visualization#chart_wrapper http://code.google.com/apis/ajax/playground/?type=visualization#chart_wrapper

如果您将鼠标悬停在德国或美国,图表上的条形将被选中或突出显示。

如何从我的列表项中触发相同的行为?

我试过了 :

function eventFire(el, etype){
    if (el.fireEvent) {
      el.fireEvent('on' + etype);
    } else {
      var evObj = document.createEvent('Events');
      evObj.initEvent(etype, true, false);
      el.dispatchEvent(evObj);
    }
 }

$(document).on("hover", ".legendary", function(){
        eventFire(document.getElementById('graphico'),'select');
        eventFire(document.getElementById('graphico'),'onmouseover');
        $("#graphico").trigger("onmouseover");
        $("#graphico").trigger("select");
        console.log("fired hover event");
    });

我在萤火虫中收到“已触发悬停事件”消息,但我的图表中没有任何反应。

我将 onmouseover 监听器添加到图表中(此函数被触发):

google.visualization.events.addListener(ga_chart, 'onmouseover', function(e) {
        console.log("listening bruv");
      });

但我不确定如何选择图表的特定部分。

我正在尝试调用任何导致主图突出显示的事件:

https://developers.google.com/chart/interactive/docs/gallery/piechart#Events https://developers.google.com/chart/interactive/docs/gallery/piechart#Events

任何想法或意见将不胜感激。


向 li 元素添加一个属性,您可以在其中标识相关行:



// create the legend entry
lis[i] = document.createElement('li');
lis[i].setAttribute('data-row',i);
  

绘制图表后,调用:

   $('#legend li').hover(function(){
      chart.setSelection([{row:$(this).data('row'),column:null}]);
    },function(){
      chart.setSelection(null);
    });

Demo: http://jsfiddle.net/doktormolle/2JWQY/ http://jsfiddle.net/doktormolle/2JWQY/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 图表调用 onmouseover 事件 的相关文章

随机推荐

  • 如何在 Mockito 中模拟 scala 调用名称

    我试图在mockito 中模拟scala 按名称调用方法 但遇到这个错误 如果匹配器与原始值组合 则可能会出现此异常 不正确 someMethod anyObject 原始字符串 使用匹配器时 所有参数都必须由匹配器提供 例如 正确的 so
  • 为什么迭代器使用“!=”而不是“<”?

    我习惯这样写循环 for std size t index 0 index lt foo size index Do stuff with foo index 但是当我在其他人的代码中看到迭代器循环时 它们看起来像这样 for Foo It
  • Visual Studio 调试器:输入外部函数时中断?

    With 只是我的代码 http msdn microsoft com en us library h5e30exc aspx 关闭并且源位置 服务器 很容易进入代码中没有的函数 但是有没有办法在其中一个函数上设置断点 基本上 我想说 当从
  • 按名称从 css LESS 列表中提取项目

    如果我有一个不太像的列表 colors red f00 green 0f0 blue 00f 我知道我可以循环列表并获取颜色 但如果我想获取特定的颜色怎么办 说我想做 extract colors green 将 0f0 从列表中删除 有没
  • HTML5 Canvas 填充两种颜色

    我需要用两种颜色填充形状 就像棋盘一样 我见过一些 css 的渐变效果 但还没有见过这样的例子 这在 Html5 Canvas 中可能实现吗 你当然可以 事实上 您可以用任何可重复的东西填充任何任意形状 即使是您在画布本身中制作的形状 这是
  • 将内容添加到列表时保持滚动位置 (AngularJS)

    我一直在尝试使用以下方法将一些项目添加到可滚动容器内的列表中ng repeat 最近的应该位于列表的顶部 如果在添加内容时容器的滚动条不在最顶部 我还需要保持滚动位置 这是我的解决方案 但我仍然有问题 Angular 在 dom 中渲染了前
  • PNG 文件格式的 IDAT 块

    我目前正在开发一种基于 png 文件格式的专有文件格式 到目前为止我已经完成了 只是它不起作用 p 我实现的 deflate 解压缩器工作起来就像一个魅力 但 png 解码器不想很好地执行 所以我看了一下原始的 png 文件 该标准规定 在
  • 选择匹配的数组元素并返回选定的字段

    我想知道如何为 Mongoose 查询中匹配的对象数组设置投影 例如 如果我有一个 Mongoose 模型 如下所示 var User new Schema name String children Child var Child new
  • 如何按字母顺序对 NSArray 进行排序?

    如何对填充的数组进行排序 UIFont familyNames 按字母顺序排列 最简单的方法是提供一个排序选择器 苹果的文档 http developer apple com library mac documentation Cocoa
  • 如果我没有调用 Java Thread Interrupt() 方法,那么谁在调用它?

    我已经阅读并重新阅读了实践中的 Java 并发性 我已经阅读了有关该主题的几个线程 我已经阅读了 IBM 文章处理InterruptedException http www ibm com developerworks java libra
  • 使 www.example.com 和 example.com 使用相同会话变量的最佳方法?

    我正在处理一个网页 我们称之为 example com 并在 CNAME 别名 下添加了 DNS 记录 Host Record Points to TTL www example com 14400 但是 当我浏览 example com
  • 如何打开我的 options.html?目前我得到 Cannot read property 'create' of undefined

    xhr onreadystatechange function if this readyState this HEADERS RECEIVED chrome tabs create url chrome extension kgllckj
  • 如何在运行时将图像插入到 WPF RichTextBox 的文本之间,以便文本漂浮在图像周围

    我正在尝试在运行时将图像插入到 WPF RichTextBox 中的文本之间 以便文本浮动 我尝试使用浮动框 但最终结果是图像旁边只能设置一行 其余内容会移到底部 这是我迄今为止用于插入图像的代码 private Image SelectI
  • Kotlin:如何让Android Studio在类底部实现接口的功能

    在 Kotlin 类中实现接口时 当我在 ClassName 上按 Alt Enter 时 我可以让 IDE 通过 实现成员 添加接口的功能 在 Kotlin 中 这些函数被添加到类的顶部 这有点烦人 我希望将它们添加到类的末尾 就像在 J
  • Python 中的简单用户名和密码应用程序

    我正在尝试使用字典构建一个简单的登录和密码应用程序 它工作正常 除了检查登录是否与密码匹配的部分 在底部显示 登录成功 如果我要创建登录名 a 和密码 b 然后创建登录名 b 和密码 a 那么如果我尝试使用登录名 a 和密码 a 登录 它就
  • 使用 blob 创建 json 文件

    我已经在字符串中编写了 json 代码 我想使用 xmlhttp 作为 json 文件发送它 可以用 blob 来做吗 var cleanScript type script api key api key data data inputs
  • 修改android中的光标列值

    我有一个从 SQLiteDataBase 对象返回的游标 我可以使用 getXXX 从光标获取列的内容 但在我的情况下 我想使用修改光标中的 更新 数据setXXX 方法 我知道没有setXXX 方法 但 CursorWindow 对象具有
  • 使用 strcpy 到 mmap 文件时出现总线错误(核心转储)

    我有一个简单的程序 int main void int fd const char text This is a test fd open tmp msyncTest O CREAT O TRUNC O RDWR S IRWXU S IRW
  • 如何使用 PHP 发送电子邮件?

    我在网站上使用 PHP 并且想添加电子邮件功能 I have Wamp服务器 https en wikipedia org wiki WampServer安装 如何使用 PHP 发送电子邮件 使用 PHP 是可以的mail http php
  • Google 图表调用 onmouseover 事件

    我一整天都在研究这个问题 但没有成功 我有一个显示一些数据的谷歌图表 工作得很好 我一直在研究更详细的图表 包括大约十几个图表图例项目 我想在图表下方显示我的图例 因此我将其位置设置为底部 但图表生成的 丑陋 分页对我的经理来说并不真正有吸