我对 JavaScript 中 for..in 循环的奇怪行为有疑问。我有以下 HTML:
<div id="quarter_circle_top_left">...</div>
<div id="quarter_circle_top_right">...</div>
<div id="quarter_circle_bottom_right">...</div>
<div id="quarter_circle_bottom_left">...</div>
<div id="author_dimension"></div>
<div id="similar_dimension"></div>
<div id="citation_dimension"></div>
<div id="concept_dimension"></div>
我想要的是,当我将鼠标悬停在一个“维度”(后 4 个 div)上时,四分之一圆(前 4 个 div)将被突出显示。我在 JS 中有以下枚举:
var DIMENSIONS = {
DIM_AUTHORS: {value: 1, dimCode: "author_dimension", areaCode: "quarter_circle_top_left"},
DIM_SIMILAR: {value: 2, dimCode: "similar_dimension", areaCode: "quarter_circle_top_right"},
DIM_CITATIONS: {value: 3, dimCode: "citation_dimension", areaCode: "quarter_circle_bottom_right"},
DIM_CONCEPTS: {value: 4, dimCode: "concept_dimension", areaCode: "quarter_circle_bottom_left"}
};
而这个 for..in 循环应该突出显示:
for (var key in DIMENSIONS) {
$("#" + DIMENSIONS[key]['dimCode']).hover(
function() {
$("#" + DIMENSIONS[key]['areaCode']).addClass("hover");
},
function() {
$("#" + DIMENSIONS[key]['areaCode']).removeClass("hover");
}
);
}
这种作品,但发生的是“尺寸”不会突出显示相应的四分之一圆,而是将鼠标悬停在其中任何一个上只会突出显示最后一个(左下角)四分之一圆。因此,当我将鼠标悬停在作者“维度”上时,我希望左上角的四分之一圆被突出显示,但只有最后一个(左下角)被突出显示。
我试图打印 and 的值,DIMENSIONS[key]['dimCode']
它们DIMENSIONS[key]['areaCode']
是正确的。任何想法为什么我的代码不能按预期工作?