jqvMap 自定义工具提示

spj*_*pjy 2 javascript jquery 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!!";
                }
            },
    });
  });
Run Code Online (Sandbox Code Playgroud)

我尝试在另一个主题上使用带有“onLabelShow”部分的代码,但它只会使我的工具提示整体消失。有什么解决办法吗?

谢谢!

链接:https : //github.com/manifestinteractive/jqvmap(jqvMap 文档) 自定义工具提示 JQVMap(其他主题)

hsh*_*hsh 5

如果您查看浏览器控制台,您会发现该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!!";
        }
    },
});
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到工作示例

希望有所帮助。