功能點(diǎn)描述:當(dāng)有父子關(guān)系的時(shí)候狸页,點(diǎn)擊父對(duì)象,將所屬的所有子對(duì)象標(biāo)注顯示检激。
思路:
1.是否和單個(gè)對(duì)象的顯示思路相同肴捉?
現(xiàn)在看來,是的叔收,和單個(gè)對(duì)象的思路相同,單個(gè)對(duì)象的要求是每次只標(biāo)注一個(gè)節(jié)點(diǎn)傲隶,所有給<path>創(chuàng)建一個(gè)id饺律,批量顯示就給每次創(chuàng)建一個(gè)<path>,并歸成一個(gè)類別跺株。
2.是否需要用到 <defs> 屬性复濒?
查閱了svg <defs> 的相關(guān)資料之后脖卖,感覺不適合在這里使用,因?yàn)?lt;defs>一定要搭配<use>使用巧颈,暫時(shí)還沒找到在 <script>代碼中控制<use>的方法畦木,故放棄。
解決方案:
每次判斷砸泛,當(dāng)點(diǎn)擊子網(wǎng)或者控制器這種父節(jié)點(diǎn)時(shí)十籍,判斷其下面有無子節(jié)點(diǎn),有子節(jié)點(diǎn)通過一個(gè)字段標(biāo)注唇礁,然后判斷所有子節(jié)點(diǎn)中該字段勾栗,并創(chuàng)建<path>,將其歸為類盏筐,然后對(duì)這類別進(jìn)行操作围俘。
有一個(gè)隱患,此法應(yīng)該有待優(yōu)化琢融,因?yàn)槊看味紩?huì)創(chuàng)建大量的<path>界牡,而且也不會(huì)清理,會(huì)非逞В卡宿亡。
解決的方法:把之前修改<path>屬性為隱藏的地方,全部更改代碼奋蔚,直接清除掉這些<path>她混。d3.selectAll(".paths").remove();