3

ユーザーが特定のマーカーをクリックした後に #output div に情報を配置する JVectorMap を使用してマップを作成しようとしています (たとえば、ユーザーがアラスカとラベル付けされたマーカーをクリックすると、アラスカに関する事実が #output div にポップアップ表示されます) )。ここの他の場所で、ラベルの名前を出力するこのコード例を見てきました...

onMarkerLabelShow: function(event, label, code) {
    $("#output").html("Some information about "+ label.html());
}

ここでスイッチを使用しようとしています...

onMarkerLabelShow: function(event, label, code) {
    switch (label) {
        case Alaska:
        $("#output").html($("#alaska-facts");
        [break;]

        case North Carolina:
        $("#output").html($("#nc-facts");
        [break;]

        default:
        $("#output").html("Please select a job site");
        [break;]
    }
}

このコードを実行するとマップが表示されず、間違った方向に進んでいる可能性があります。何か助けはありますか?

4

1 に答える 1

2

いくつかの問題:

  • labelオブジェクトであり、case文字列値に一致する単純なステートメントには一致しません。あなたはに対して評価したいかもしれませんlabel.text()
  • の値は、case引用符で囲まれた文字列にする必要があります (つまり"North Carolina"、 ではありませんNorth Carolina) 。
  • をラップするbreak;べきではありませ[]ん ( の配列は必要ありません。breakから抜け出したいのですswitch)。
  • jQuery ID セレクターで を)設定する行の締めくくりがありません.html()

修正例:

onRegionLabelShow: function(event, label, code) {
   switch (label.text()) {
      case "Alaska":
         $("#output").html($("#alaska-facts"));
         break;

      case "North Carolina":
         $("#output").html($("#nc-facts"));
         break;

      default:
         $("#output").html("Please select a job site");
         break;
   }
}
于 2012-11-01T01:42:59.880 に答える