javascript - 鼠标移出 D3 后如何设置元素的默认颜色

标签 javascript css d3.js

我有一个强制有向图,我喜欢突出显示它的父级,并使它们比其他图大一点,我可以为它们设置新颜色并使其更大,但我无法将它们恢复为默认大小和颜色。 每当我将鼠标移到元素上时,它都会将所有元素更改为绿色,但是当我移出鼠标时,只有中心元素会更改颜色,但它不会返回到它自己的颜色,它会返回到我放置鼠标的颜色。

function highlightParents(d) {
    var colour = d3.event.type === 'mouseover' ? 'green' : color(d.group);
    d3.select('#id-' + parseInt(d.id)).style('fill', colour);
    var bid = "";
    for (var i = 0; i < link._groups[0].length; i++) {

        if (link._groups[0][i].attributes[0].value.replace("t-", "") == d.id) //target
        {

            bid += link._groups[0][i].attributes[1].value.replace("s-", ""); //source
            d.id = link._groups[0][i].attributes[1].value.replace("s-", "");  //source


            var colour = d3.event.type === 'mouseover' ? 'green' : color(d.group);
            d3.select('#id-' + parseInt(d.id)).style('fill', colour);
            var setr = d3.event.type === 'mouseover' ? '7' : 5;
            d3.select('#id-' + parseInt(d.id)).style('r', setr);                         
            i = 0;
            if (link._groups[0][i].attributes[1].value == "304410") {
                break;
                d3.selectAll('#id-' + parseInt(d.id)).style('fill', (d.group));

            }
        }
    }
}

最佳答案

你能使用“mouseout”事件吗?

例如:

function highlightParents(d) {
  var colour = color(d.group);
  if (d3.event.type === 'mouseover') colour = 'green';
  if (d3.event.type === 'mouseout') colour = 'red';
  ...

关于javascript - 鼠标移出 D3 后如何设置元素的默认颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44622663/

相关文章:

javascript - 尝试用 jQuery 制作一个简单的网格

javascript - D3 强制布局颜色和缩放

javascript - jquery 按键缺失字符

javascript - 如何防止 Javascript 中加载额外的函数

css - MSIE 6、7 中的按钮高度问题

css - bootstrap 已排队但 normalize.less 未显示

javascript - 为什么事件监听回调函数只能在函数作用域内起作用?

javascript - 如何统计点击的节点数?

javascript - 表单验证在 Internet Exloprer 9 中不起作用 - AngularJS

javascript - React 中如何判断哪个组件触发了事件处理器?