use*_*009 1 jquery svg onclick d3.js
我目前在我的地图中有县,突出显示并删除鼠标悬停和鼠标移除时的突出显示.我想为click事件设置一个单独的颜色 - 这意味着所选的县将保持这种新颜色,直到单击一个新的县,而不管任何鼠标悬停或鼠标移除事件.我目前在点击时改变了县的颜色,但只有当鼠标在元素上方时才会改变.
这是我现在拥有的:
.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':''});
});
Run Code Online (Sandbox Code Playgroud)
如果要在单击另一个项目时"取消突出显示"某个项目,则需要一种方法来查找先前突出显示的项目并取消设置其"突出显示"状态.
一种方法是为class突出显示的项目指定一个特定的项目,以便您稍后再次找到它.您是否使用它来设置项目的样式无关紧要.
例如,在click下面的内容中,首先通过搜索具有.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);
});
Run Code Online (Sandbox Code Playgroud)
你可以在这个小提琴中尝试一下.
| 归档时间: |
|
| 查看次数: |
3284 次 |
| 最近记录: |