2017-10-05 93 views
1

如果单击某个路径,我设置了一个单击的属性如何在单击svg时检查该属性。跟踪单击事件的d3数据

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

前提是你已经财产已经设置为元素的数据和变量是指只有一个元素,你使用可以得到属性:

pathHover.datum().clicked; 

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

var isClicked = pathHover.datum().clicked; 

我说:“前提是你已经设置属性”因为,根据我的回答对你last question,物业只有当用户点击元素设置。如果您保持该方法,则如果在单击元素之前单击SVG,上面的代码片段将返回undefined

或者,如果您有几个元素,只需按照属性选择filter(),然后放下for循环。