P粉8113491122023-09-01 18:38:29
在這種情況下,點擊事件最終觸發的是類似於「開關」的行為。
預設情況下,我們看到根節點和層次結構的所有子節點。
點擊至少有一個子節點的環(例如'A'),會過濾掉其父節點('Root')和兄弟節點('B'),並將該環視覺上作為新的根節點,我們只看到該環下的層次結構(即環過濾開關打開,事件資料中的屬性nextLevel
相應地設定為'A',如“A是新的根節點”) 。
再次點擊該環 - 現在是最內層的圓環 - 關閉過濾器,父節點和兄弟節點重新出現,nextLevel
設定為'Root'。
點選沒有子節點的環(例如'a'或'B')沒有效果,因此在這種情況下nextLevel
未定義。
實際上,屬性nextLevel
反映了狀態的變化。
現在為了更好地理解點擊處理程序中發生的情況,您可能想要檢查currentpath
(或為了一致性,稍微調整過的版本)以及nextLevel
的存在/值:
Plotly.newPlot('graph', [{ type: 'sunburst', parents: ['', 'Root', 'Root', 'A'], labels: ['Root', 'A', 'B', 'a'] }]).then(gd => { gd.on('plotly_sunburstclick', data => { const pt = data.points[0] const path = ((pt.currentPath ?? '/') + pt.label).replace('Root', '') console.log('path:', path) // 点击元素的路径 console.log('nextLevel:', data.nextLevel) // 如果有的话,新根节点的标签 }) })