跟踪点击事件的d3数据

时间:2017-10-05 06:42:43

标签: d3.js

如果单击了一个路径,我设置了一个clicked属性,如何在单击svg时检查该属性。

this.svg = this.selectorElement.append('svg')
                               .on('click', function(d) {
                                   console.log('svg clicked');
                                   for (let path of dataPaths) {

                                   }
                               });

在此处设置属性

pathHover.on('click', function(d) {
         d.clicked = !d.clicked;
         d3.event.stopPropagation();
      });

dataPaths.push(pathHover);

1 个答案:

答案 0 :(得分:1)

如果您已将该属性设置为该元素的数据,并且该变量仅涉及一个元素,则可以使用以下命令获取该属性:

pathHover.datum().clicked;

例如,将其存储在变量中,该变量将为falsetrue

var isClicked = pathHover.datum().clicked;

我说"前提是您已经设置了属性" ,因为根据我对last question的回答,该属性仅在用户点击时设置元素。如果您保留该方法,如果您在点击元素之前单击SVG,则上面的代码段将返回undefined

或者,如果你有多个元素,根据属性只选择filter()你的选择,放弃for循环。