2017-10-05 92 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循環。