如何仅在jVectorMap中单击某个区域时显示工具提示,并让它打开?

Win*_*Win 5 javascript jquery jvectormap

我正在使用这个jVectorMap.默认情况下,它会在悬停时显示工具提示.

这是我想要实现的目标 -

  1. 在单击时 显示工具提示(部分工作但工具提示应该在鼠标光标上方.我无法弄清楚如何获得鼠标光标位置.)
  2. 让工具提示打开,直到用户明确点击关闭.

代码:jsfiddle

$('#map').vectorMap({
    map: "us_aea_en",
    backgroundColor: "transparent",
    regionStyle: {
        initial: {
            fill: "#818486"
        }
    },
    onRegionClick: function (e, code) {
        var map = $('#map').vectorMap('get', 'mapObject');        
        map.tip.show();
        map.tip.html(code + "<p>Click to Close</p>");
    },
    onRegionTipShow: function (e, tip, code) {
        e.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)

欲望行为

在此输入图像描述

Ina*_*zes 8

我按照你想要的方式工作并更新你的小提琴:http://jsfiddle.net/inanda/ufhz316z/5/

使用Javascript

 $('#map').vectorMap({
    map: "us_aea_en",
    backgroundColor: "transparent",
    regionsSelectable: true,
    regionsSelectableOne: true,
    regionStyle: {
        initial: {
            fill: "#818486"
        },
        selected: {
            fill: "#C0C0C0"
      }
    },
    onRegionClick: function (e, code) {
        var map = $('#map').vectorMap('get', 'mapObject');
        var customTip=$('#customTip');

        customTip.css({
          left: left,
          top: top
        })

        customTip.html(map.tip.text());
      customTip.show();
      customTip.append(code + "<p>Click to Close</p>");
        customTip.children("p").click(function(){
            map.clearSelectedRegions();
           customTip.hide(); 
        }) 

    },
    onRegionTipShow: function (e, tip, code) {
        e.preventDefault();
    }
});

var left,top;
$('#map').vectorMap('get', 'mapObject').container.mousemove(function(e){
   left = e.pageX - 40;
   top = e.pageY - 60;

});
Run Code Online (Sandbox Code Playgroud)

HTML

<div id="map"></div>
<div id="x"></div>
<div id="y"></div>
<div id="customTip" class="jvectormap-tip"></div>
Run Code Online (Sandbox Code Playgroud)

CSS

#map {
    width: 500px;
    height: 400px;
}
Run Code Online (Sandbox Code Playgroud)