Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 设置d3地图上单击事件的颜色_Jquery_Svg_Onclick_D3.js - Fatal编程技术网

Jquery 设置d3地图上单击事件的颜色

Jquery 设置d3地图上单击事件的颜色,jquery,svg,onclick,d3.js,Jquery,Svg,Onclick,D3.js,目前,我的地图中有县高亮显示,并删除鼠标悬停和鼠标悬停上的高亮显示。我想为单击事件设置一个单独的颜色-这意味着所选的县将保留此新颜色,直到单击一个新县而不受任何鼠标悬停或鼠标悬停事件的影响。我目前有县的颜色改变点击,但只有当鼠标在元素上 以下是我目前拥有的: .call(d3.helper.tooltip() .text(function(d){ return 'County: '+ newDict[d.id][0] + '<br />HOPE D

目前,我的地图中有县高亮显示,并删除鼠标悬停和鼠标悬停上的高亮显示。我想为单击事件设置一个单独的颜色-这意味着所选的县将保留此新颜色,直到单击一个新县而不受任何鼠标悬停或鼠标悬停事件的影响。我目前有县的颜色改变点击,但只有当鼠标在元素上

以下是我目前拥有的:

        .call(d3.helper.tooltip()
          .text(function(d){ return 'County: '+ newDict[d.id][0] + '<br />HOPE Dollars: $' +commasFormatter(newDict[d.id][1]); }))
          .on('mouseover', function(d){ d3.select(this).style({fill: '#FAAE0A', stroke: '#F08C00', opacity:'0.5', 'stroke-width':'3px'}); })
          .on('mouseout', function(d){ d3.select(this).style({fill: '', stroke: '', opacity:'1', 'stroke-width':''}); })
        .on("click", function(d) {
        $('#nameCounty').html(''+ newDict[d.id][0] +'')
        d3.select(this).style({fill: '#F08C00', stroke: '', opacity:'1', 'stroke-width':''});
        });

如果要在单击另一个项目时取消突出显示该项目,则需要找到以前突出显示的项目并取消其突出显示状态的方法

一种方法是为突出显示的项分配一个特定的类,以便以后再次找到它。您是否也使用它来设置项目的样式并不重要

例如,在单击时,以下内容将首先通过搜索具有.highlighted类的项来查找以前突出显示的项,从该项中删除.highlighted类,然后将.highlighted类分配给当前项:

.on("click", function () {
            // Find previously selected, unselect
            d3.select(".selected").classed("selected", false);

            // Select current item
            d3.select(this).classed("selected", true);
        });

您可以在中试用。

如果要在单击另一个项目时取消突出显示该项目,则需要找到以前突出显示的项目并取消其突出显示状态的方法

一种方法是为突出显示的项分配一个特定的类,以便以后再次找到它。您是否也使用它来设置项目的样式并不重要

例如,在单击时,以下内容将首先通过搜索具有.highlighted类的项来查找以前突出显示的项,从该项中删除.highlighted类,然后将.highlighted类分配给当前项:

.on("click", function () {
            // Find previously selected, unselect
            d3.select(".selected").classed("selected", false);

            // Select current item
            d3.select(this).classed("selected", true);
        });

你可以在家里试试。

我不太明白。当然,您必须将鼠标悬停在元素上才能单击它。唯一的分离方法是让另一个元素触发对它的单击,这样你就不必将鼠标移到它上面。我希望单击的项目保持高亮显示,直到单击新项目。我知道我现在如何设置它是不正确的。但是,如果我单独设置触发器,我将如何使单击的项目在新单击时重置?我不确定我是否理解。当然,您必须将鼠标悬停在元素上才能单击它。唯一的分离方法是让另一个元素触发对它的单击,这样你就不必将鼠标移到它上面。我希望单击的项目保持高亮显示,直到单击新项目。我知道我现在如何设置它是不正确的。但是,如果我单独设置触发器,我如何让单击的项目在新的单击时重置?我还无法让它在我的中工作,但我会继续工作,并让您知道。谢谢你的提琴。我现在还不能用,但我会继续用它,让你知道。谢谢你的提琴。