d3.js - d3.js .on mouseover 不会触发
问题描述
我是 d3 的新手,并且有一小段代码可以部分工作。只有最后一行给我带来了麻烦。代码来自 Codecademy 的课程。代码不起作用:
LET CLIMATE_DALY_DATA = [
{REGION: "LOW-AND-MIDDLE-INCOME COUNTRIES OF THE AFRICAN REGION", DEATHS: 57},
{REGION: "LOW-AND-MIDDLE-INCOME COUNTRIES OF THE AMERICAS", DEATHS: 2},
{REGION: "LOW-AND-MIDDLE-INCOME COUNTRIES OF THE EASTERN MEDITERRANEAN REGION", DEATHS: 20},
{REGION: "LOW-AND-MIDDLE-INCOME COUNTRIES OF THE EUROPEAN REGION", DEATHS: 0.67},
{REGION: "LOW-AND-MIDDLE-INCOME COUNTRIES OF THE SOUTH-EAST ASIA REGION", DEATHS: 58},
{REGION: "LOW-AND-MIDDLE-INCOME COUNTRIES OF THE WESTERN PACIFIC REGION", DEATHS: 4},
{REGION: "HIGH INCOME COUNTRIES", DEATHS: 0.23}
];
LET TOGGLECLASS = (I,TOGGLE) => {
D3.SELECT("#VIZ DIV:NTH-CHILD("+ I +")").CLASSED("HIGHLIGHTBAR",TOGGLE);
D3.SELECT("#LEGEND LI:NTH-CHILD("+ I +")").CLASSED("HIGHLIGHTTEXT",TOGGLE);
};
LET DIVSELECTION =
D3.SELECT('#VIZ')
.SELECTALL('DIV')
.DATA(CLIMATE_DALY_DATA)
.ENTER()
.APPEND('DIV')
.ON('MOUSEOVER', (D,I) => {TOGGLECLASS(D.I+1, TRUE)})
.ATTR('CLASS', 'BAR')
.STYLE('WIDTH', FUNCTION(D) {RETURN D.DEATHS*8 + 'PX';})
;
LET LISTSELECTION =
D3.SELECT('#LEGEND')
.SELECTALL('LI')
.DATA(CLIMATE_DALY_DATA)
.ENTER()
.APPEND('LI')
.TEXT(FUNCTION(D) {RETURN D.REGION + ': ' + D.DEATHS + ' DEATHS';})
;
我看到了预期的条形图,但是将鼠标悬停在条形上并没有改变它们的外观,也没有看到光标发生变化。
解决方案
推荐阅读
- sql-server - SQL Server 2019 Express 安装失败,因为找不到 2017 驱动程序?
- dax - DAX/POWERBI:计算附加到一个项目及其所有子项目的票
- android-studio - JetBrains (Android Studio/CLion) 代码折叠区域 - 切换回仅折叠顶层?
- javascript - 如何使用 wix 通过 sendgrid 发送附件文件
- react-native - onPress 没有读取处理函数
- python - 无法在 Windows 上的 VScode 3.8.5 中安装 pyaudio
- python - 熊猫传递参数以申请
- c++ - 在命名空间内的变量之前“使用”
- sql - SQL:嵌套子查询错误地返回条目
- python - 创建衡量 F1 损失的标准