2017-07-17 83 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函數中,您可以添加 硬編碼檢查區域代碼或將其添加到配置並通過或拒絕鑽取。