我正在使用jVectorMap插件,我试图从地图数组中获取name元素,如下所示:
$.fn.vectorMap('addMap','usa_en',{ "width": 959,"height": 593,"pathes": { "hi": { "path": "COORDINATES_GO_HERE","name": "Hawaii" },"ak": { "path": "COORDINATES_GO_HERE","name": "Alaska" },"fl": { "path": "COORDINATES_GO_HERE","name": "Florida" },...and so on for the other 47 states } })
插件使用以下命令启动,地图数组文件由“map”设置定义:
var myData = {"hi":0,"ak":0,"fl":0,...and so on} $('#us-map').vectorMap({ map: 'usa_en',values: myData,color: '#ccc',onRegionClick: function(event,code){ $.get('{site_url}embeds/state_view/'+code,function(data) { $('#data-replace').fadeOut(200,function(){ $(this).html(data).fadeTo(200,1); }); $('#data-title').fadeOut(200,function(){ $(this).text(INSERT_CLICKED_STATE_NAME_HERE).fadeTo(200,1); }); }); } });
关于如何将地图文件数组中的州名插入onRegionClick回调的任何想法?
解决方法
您需要获取地图对象的句柄,然后您可以使用getRegionName()方法:
onRegionClick: function(event,code){ //obtain the reference to the map object var map = $('#world-map').vectorMap('get','mapObject'); $.get('{site_url}embeds/state_view/'+code,function(data) { $('#data-replace').fadeOut(200,1); }); $('#data-title').fadeOut(200,function(){ $(this).text(map.getRegionName(code)).fadeTo(200,1); }); });