如果单击了一个路径,我设置了一个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);
答案 0 :(得分:1)
如果您已将该属性设置为该元素的数据,并且该变量仅涉及一个元素,则可以使用以下命令获取该属性:
pathHover.datum().clicked;
例如,将其存储在变量中,该变量将为false
或true
:
var isClicked = pathHover.datum().clicked;
我说"前提是您已经设置了属性" ,因为根据我对last question的回答,该属性仅在用户点击时设置元素。如果您保留该方法,如果您在点击元素之前单击SVG,则上面的代码段将返回undefined
。
或者,如果你有多个元素,根据属性只选择filter()
你的选择,放弃for
循环。