Javascript 当我在地图上拖动鼠标时,鼠标悬停事件立即启动

Javascript 当我在地图上拖动鼠标时,鼠标悬停事件立即启动,javascript,events,leaflet,mouseover,Javascript,Events,Leaflet,Mouseover,我当时正在处理传单和鼠标悬停事件。 我想要的是在移动悬停并在地图上停止时显示工具提示信息。 然而,我的实现在我打开地图时就启动了。在我的例子中,它的工作方式完全有道理,但我无法找到在地图上特定位置“鼠标悬停”时显示工具提示的方法。此外,当鼠标移出时,它应该是可移动的,当鼠标经过时,它应该再次显示工具提示。 这是我的密码: mymap.on('click', function(e){ var lt = String(e.latlng.lat), lg = String(e.latln

我当时正在处理传单和鼠标悬停事件。 我想要的是在移动悬停并在地图上停止时显示工具提示信息。 然而,我的实现在我打开地图时就启动了。在我的例子中,它的工作方式完全有道理,但我无法找到在地图上特定位置“鼠标悬停”时显示工具提示的方法。此外,当鼠标移出时,它应该是可移动的,当鼠标经过时,它应该再次显示工具提示。 这是我的密码:

   mymap.on('click', function(e){
  var lt = String(e.latlng.lat),
  lg = String(e.latlng.lng);

  const Http = new XMLHttpRequest();
  const url='http://api.geonames.org/findNearbyPlaceNameJSON?lat='+lt+'&lng='+lg+'&username=aziyatali';
  Http.open("GET", url);
  Http.send();

 Http.onreadystatechange = (ev) => {
  var countryData = JSON.parse(Http.responseText);
  console.log(countryData);
  var countryName = countryData.geonames[0].countryName;
  console.log("My requestL ", countryName);
  var popup = L.popup()
    .setLatLng(e.latlng)
    .setContent(countryName)
    .openOn(mymap);
}
});
目前,当我点击地图的特定部分时,它会显示当前的国家名称。它获取当前事件的latlng,并通过geonamesAPI获取国家名称

您可以创建一个“mousemove-end-listener”

每次调用mousemove事件时,都会重置超时并重新启动。如果不再清除->鼠标停止,则可以执行脚本

var timeout = null;
mymap.on('mousemove', function(e){
    clearTimeout(timeout);
  timeout = setTimeout(()=>{runScript(e)},200);
});

function runScript(e){
  var lt = String(e.latlng.lat),
  lg = String(e.latlng.lng);

  const Http = new XMLHttpRequest();
  const url='http://api.geonames.org/findNearbyPlaceNameJSON?lat='+lt+'&lng='+lg+'&username=aziyatali';
  Http.open("GET", url);
  Http.send();

  Http.onreadystatechange = (ev) => {
    var countryData = JSON.parse(Http.responseText);
    console.log(countryData);
    var countryName = countryData.geonames[0].countryName;
    console.log("My requestL ", countryName);
    var popup = L.popup()
    .setLatLng(e.latlng)
    .setContent(countryName)
    .openOn(mymap);
  }
}