2017-07-17 85 views

回答

0

我相信,你的要求也可以用一些由jVectorMap提供的标准功能来实现。在下面的示例中,可以选择除德克萨斯州以外的所有美国地区,从而仅针对US-TX执行常规多地图下钻。

$(document).ready(function() { 
    new jvm.MultiMap({ 
    container: $('#map'), 
    maxLevel: 1, 
    main: { 
     map: 'us_lcc', 
     regionsSelectable: true, 
     regionStyle: { 
     selected: { 
      fill: 'green' 
      } 
     }, 
     onRegionClick: function(event, code) { 
      if(code == "US-TX") { 
      return false; 
      } else { 
      event.stopImmediatePropagation(); 
      } 
     } 
     } 
    }); 
}); 

说明:

作为文档说here,所述多重映射对象的主地图可以被配置的方式为“正常”的地图相同。

在多图onRegionClick处理程序中,可以通过返回false来避免区域选择,并且可以通过调用stopImmediatePropagation()来停止向下钻取。我使用jVectorMap 2.0.2版测试了这个代码片段,但它也可以与最新版本一起使用。

顺便说一句,感谢bjornd伟大的jVectorMap。

+0

很酷的建议。我试图用'stopPropagation'来停止事件,但它不起作用,所以你的解决方案非常清晰和简单,谢谢你。 – Iworb

0

没有任何标准行为来达到此目的。

要处理这个问题,我不得不修改MultiMap文件。在addMap函数中,您可以添加 硬编码检查区域代码或将其添加到配置并通过或拒绝钻取。