1

这是一个奇怪的问题。

我可以使用标准世界地图执行以下操作,单击更改按钮即可:

    $("#change").on("click", function() {
        map.updateChoropleth({
          "USA": "#ff0f00",
          "IRQ": "#0fa0fa",
          "FRA": "blue",
          "UKR": "orange",
          "MEX": "#00ffaf"
        });
   });

如果我使用我的自定义 topojson 文件,我可以这样做,并且在地图加载时实施更改:

map.updateChoropleth({
  "Choptank River": {fillKey: "Poor"}
});

但是,一旦我尝试将其包装在单击事件处理程序中(就像我在世界地图示例中所拥有的那样),它就不起作用了:

$("#change").on("click", function() {
    console.log("test");
    map.updateChoropleth({
      "Choptank River": {fillKey: "Poor"}
    });
});

测试警报触发良好,但地图叶绿素未更新。

感谢您的任何想法!

4

1 回答 1

1

原来这是由于 id 中的空格:“Choptank River”。

https://github.com/markmarkoh/datamaps/issues/124#issuecomment-53314378

“DataMaps 依靠类选择器在异步加载数据时应用颜色。由于文件中的 id 字段中有空格,因此类选择器找不到任何东西。”

谢谢@markmarkoh

于 2014-08-25T20:34:10.847 回答