2016-06-12 119 views
2

我知道其他jqvMap自定義工具提示主題已經得到解答,但是,該解決方案對我無效。jqvMap自定義工具提示

這裏是我的jQuery目前jqvMap代碼:

jQuery(document).ready(function() { 
    jQuery('#vmap').vectorMap({ 
     map: 'usa_en', 
     enableZoom: true, 
     showTooltip: true, 
     selectedColor: null, 
     hoverColor: null, 
     backgroundColor: '#fffff', 
     colors: { 
     fl: '#016ea1', 
     ma: '#016ea1', 
     md: '#016ea1', 
     wa: '#016ea1', 
     mn: '#016ea1', 
     ny: '#016ea1', 
     wi: '#016ea1', 
     hi: '#016ea1', 
     vt: '#016ea1', 
     nv: '#016ea1', 
     ia: '#016ea1', 
     ca: '#016ea1', 
     or: '#016ea1', 
     nj: '#016ea1', 
     }, 
onRegionClick: function(element, code, region) 
{ 
     window.location = 'http://google.com/' + region; 

}, 
      onLabelShow: function(event, label, code) { 
       if (states.toLowerCase().indexOf(code) <= -1) { 
        event.preventDefault(); 
       } else if (label[0].innerHTML == "Colorado") { 
        label[0].innerHTML = label[0].innerHTML + " - The state where I live!!"; 
       } 
      }, 
    }); 
    }); 

我使用上與其他主題的代碼試圖「onLabelShow」的一部分但它只是讓我的提示消失的全過程。任何解決方案?

謝謝!

鏈接: https://github.com/manifestinteractive/jqvmap(jqvMap文檔) Custom Tooltips JQVMap(其它主題)

回答

3

如果你看看你的瀏覽器控制檯,你會看到states變量沒有定義的。如果要防止在不存在的狀態下顯示工具提示,則需要定義states,如果不是,則只需刪除第一個if語句。 的onLabelShow應該喜歡這樣的:

onLabelShow: function(event, label, code) { 
     states =["fl","ma","md","wa","mn","ny","wi","hi","vt","nv","ia","ca","or","nj"]; 
     if (states.indexOf(code) <= -1) { 
      event.preventDefault(); 
     } else if (label[0].innerHTML == "Florida") { 
      label[0].innerHTML = label[0].innerHTML + " - The state where I live!!"; 
     } 
    }, 
}); 

你可以找到一個工作示例Here

希望幫助。

+1

啊,我明白了。謝謝,像魅力一樣工作! – DarkTakua