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>
私が欲しいのは、「次元」の1つ(後の4 div)にカーソルを合わせると、四分円の1つ(最初の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 (var key in DIMENSIONS) {
$("#" + DIMENSIONS[key]['dimCode']).hover(
function() {
$("#" + DIMENSIONS[key]['areaCode']).addClass("hover");
},
function() {
$("#" + DIMENSIONS[key]['areaCode']).removeClass("hover");
}
);
}
この種の作業ですが、「寸法」はそれぞれの四分円を強調表示せず、代わりにそれらのいずれかにカーソルを合わせると、最後(左下)の四分円のみが強調表示されます。したがって、作成者の「寸法」にカーソルを合わせると、左上の4分の1の円が強調表示されますが、代わりに最後の1つ(左下)のみが強調表示されます。
との値を出力しようとしましたDIMENSIONS[key]['dimCode']
がDIMENSIONS[key]['areaCode']
、正しい値です。私のコードが期待どおりに機能しない理由はありますか?