ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
#### 1、问题描述 别个区域在地图上占地面积较小(如渝中区),添加文字或数据图表后导致当前区域无法高亮显示及无法钻取;如果有要添加提示框(区域中文字或图表)无法显示提示框,必须给区域、文字、图表三个元素分别绑定mouseover事件 #### 2、问题原因 绘制地图时地图各区域、区域名字、区域图表各放在了一个组元素里。由于层关系导致无法捕捉到当前区域 #### 3、解决方案 解决方案1:通过d3.event.relatedTarget.nodeName去判断 ```javascript var thisType = d3.event.relatedTarget.nodeName var types = ['image', 'text', 'div', 'span'] var index = types.indexOf(thisType.toLowerCase()) if(index>-1){ return } ``` 此方案会导致另一个,会出现多个提示框,鼠标离开后提示框仍然存在有些区域仍然处于高亮状态 解决方案2:把区域、区域名、区域上的图表添加到一个g元素下,有多少个区域就创建多少个g元素。只对集合g元素添加事件。 ![](https://box.kancloud.cn/230a85ba2742a1e31010f567163f8dd9_622x187.png)