d3-tip中show在自己调用时需要改变this值

<script src="https://d3js.org/d3.v4.min.js"></script><script src="https://cdn.bootcss.com/d3-tip/0.9.1/d3-tip.js"></script>

const svg = d3.select(‘body‘).append(‘svg‘)    .attr(‘width‘, 500)    .attr(‘height‘, 500);
let dataSymbol = [d3.symbolCircle, d3.symbolCross, d3.symbolDiamond, d3.symbolSquare,    d3.symbolStar, d3.symbolTriangle, d3.symbolWye];let color = d3.scaleOrdinal(d3.schemeCategory10);const symbol = d3.symbol().size(500).type(d => d); let tip = d3.tip() // 设置tip     .attr(‘class‘, ‘d3-tip‘)     .offset([-10, 0])     .html(function (d, i) {         return "<strong>颜色" + color(i) + "<br></strong> <span style=‘color:#ffeb3b‘>" + color(i) + "</span>";     });

svg.call(tip);svg.append(‘g‘)    .attr(‘transform‘,‘translate(100, 100)‘)    .selectAll(‘path‘).data(dataSymbol).enter().append(‘path‘)    .attr(‘d‘, d => symbol(d))    .attr(‘stroke‘, ‘black‘)    .attr(‘stroke-width‘, 5)    .attr(‘transform‘, (d,i) => ‘translate(‘+ i * 60+‘,‘+ 200 +‘)‘)    .attr(‘fill‘, (d,i) => color(i))    .on(‘mouseover‘, function () {        let args = Array.prototype.slice.call(arguments);        d3.select(this).attr(‘fill‘, ‘red‘);        tip.show.apply(this, [...args]);    //.on(‘mouseover‘,tip.show) 没有其他事件程序时这样写,tip.show函数的this值为发生鼠标移入事件的元素。如果事件程序多,写在一个function中时,需要将tip.show的this值指定为同样的元素,即事件函数的this,并将参数传入
    })    .on(‘mouseout‘, function (a,b,c) {        d3.select(this).attr(‘fill‘, color(b)).selectAll(‘text‘).remove();        tip.hide();    })

原文地址:https://www.cnblogs.com/sgqwjr/p/10314770.html

时间: 2024-11-13 09:38:30

d3-tip中show在自己调用时需要改变this值的相关文章

jmeter调用时如何改变已定的变量名称

在jmeter文件调用的时候,遇到一个问题,被调用的文件(称为basic文件吧)里面定的变量名称是code,在调用basic文件时,要先在数据库中查出code,再做为参数传入,数据库查询后,变量调用时就要使用${code_1},这样与basic里定义的名称就不同了,该如何解决这个问题呢? 以下举例说明: basic文件: 调用basic文件: 简单吧,这种情况适用于basic文件不可更改的情况,例如basic已经被其他很多文件调用了,改了名称会导致其他文件出错.如果可以改basic文件的话,直接

[4] D3.js中使用scale(比例)

本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 在上一节中使用了一个很重要的概念 - scale (这个不知道翻译成什么,暂且叫它比例).本节将重点介绍它的相关使用方法. 在介绍 scale 之前,先介绍两个经常和 scale 一起出现的函数,在上一节中也出现了. d3.max() d3.min() 它们用于求一个数组中的最大值和最小值,如果是一维数组,使用方法如下: var dataset = [ 30,

Rails::Application中的一个方法调用

Ruby语言的动态性使得想仅仅通过查找相关API文档来学习Rails是完全不够的,因为API文档只记录了静态代码定义的方法,而Rails中有很多的方法都是在加载时或运行时动态生成的,想要了解这些方法必须要阅读源代码.本文以Rails工程下的config/application.rb文件中的一个方法调用为例,分析方法调用的具体过程. 1. 问题描述 假设Rails工程叫做Sample,那么在config/application.rb中会定义Sample::Application,并可以在其中调用c

Android下通过root实现对system_server中binder的ioctl调用拦截

Android下通过root实现对system_server中binder的ioctl调用拦截 分类: Android2013-06-19 18:09 779人阅读 评论(0) 收藏 举报 作 者: Passion时 间: 2012-10-18,13:53:53链 接: http://bbs.pediy.com/showthread.php?t=157419 Android下通过root实现对system_server中binder的ioctl调用拦截作者:passion2012-10-18关键

FineReport中以jws方式调用WebService数据源方案

在使用WebService作为项目的数据源时,希望报表中也是直接调用这个WebService数据源,而不是定义数据连接调用对应的数据库表,这样要怎么实现呢? 在程序中访问WebService应用服务,将WebService返回的数据转为程序数据集,然后在设计器中调用. 以axis1.4上的WebService为例,介绍其取数方式以及将数据转换为WebService的程序数据集的过程. WebService应用服务 如在Tomcat下的Axis工程中以jwa方式发布了一个WebService应用服

Caliburn框架中二级Menu无法调用ViewModel方法

公司WPF程序开发中应用了Caliburn框架,最近在做一个DataGrid上二级MenuItem时,发现Click方法无法调用ViewModel中的方法,但是回来后,在自己的机器上写了一个类似的测试程序时,却能够调用ViewModel中的方法 测试程序DataGrid 1 <DataGrid CanUserAddRows="False" AutoGenerateColumns="True" ItemsSource="{Binding Collect

InvocationHandler中invoke()方法的调用问题

转InvocationHandler中invoke()方法的调用问题 Java中动态代理的实现,关键就是这两个东西:Proxy.InvocationHandler,下面从InvocationHandler接口中的invoke方法入手,简单说明一下Java如何实现动态代理的.         首先,invoke方法的完整形式如下: public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名

原文:Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名 源代码下载地址:http://www.zuidaima.com/share/1550463397874688.htm HMacMD5 加密纯 Java 实现,用于淘宝客 JS 组件 API 调用时生成 sign 的签名 另外:给大家贴一段淘宝客组件 API (JS API) 调用时,生成签名的核心代码. 另外:从事淘宝客开发的童鞋,碰到啥问题可以找我交流!!! String timestamp =

Jenkins使用jenkins-cli.jar进行远程调用时出现“ERROR: No such job &#39;test&#39;”的问题解决(Windows)

网上最提倡的解决办法是用SSH的key进行登录,但是我发觉Linux上非常容易实现,但是Windows压根不知道在哪里设置. 原文:https://issues.jenkins-ci.org/browse/JENKINS-12543 国外参考:http://stackoverflow.com/questions/21609589/jenkins-cli-build-on-cloudbees-no-such-job 国内参考:http://www.lai18.com/content/6214326