Javascript 如果在ELSE被接受后不工作(潜在的传单、抽签问题)

Javascript 如果在ELSE被接受后不工作(潜在的传单、抽签问题),javascript,if-statement,leaflet,leaflet.draw,Javascript,If Statement,Leaflet,Leaflet.draw,我有一个传单地图,它使用传单.Draw库,允许用户绘制geoJSON多边形并下载文件(在文件转换为.KML格式后)。我遇到了一个问题,即如果没有绘制多边形,下载函数仍将运行,因此我尝试使用查看geoJSON文件长度的if/ELSE语句来修复这个问题 document.getElementById('export').onclick = function(e) { //extract GeoJson from featureGroup var data = featureGroup.to

我有一个传单地图,它使用传单.Draw库,允许用户绘制geoJSON多边形并下载文件(在文件转换为.KML格式后)。我遇到了一个问题,即如果没有绘制多边形,下载函数仍将运行,因此我尝试使用查看geoJSON文件长度的if/ELSE语句来修复这个问题

document.getElementById('export').onclick = function(e) {

  //extract GeoJson from featureGroup
  var data = featureGroup.toGeoJSON();
  console.log(data.features.length);    

  if (data.features.length === 0) {
    alert('Your drawn feature is not valid!');              
  } else {
    //convert to KML
    var kml = tokml(data);

    //convert to dataURL format
    var convertedData = 'application/vnd.google-earth.kml+xml;charset=utf-8,' + 
    encodeURIComponent(kml);

    //create export
    document.getElementById('export').setAttribute('href', 'data:' + convertedData);
    document.getElementById('export').setAttribute('download','3DroneMapping_AOI.kml');
  }
} 
起初,上面的代码似乎工作得很好。单击“下载”按钮而不绘制多边形功能将在控制台中记录0并显示警报。其中,绘制多边形特征并单击下载按钮会将1记录到控制台,文件将下载

绘制多边形要素、下载该要素并使用“删除”按钮删除该要素后,会出现此问题:

document.getElementById('delete').onclick = function(e) {           
  featureGroup.clearLayers();
}
现在多边形功能已被删除,下载按钮应再次触发警报。但发生的情况是,尽管控制台仍然记录0并触发警报,但在单击警报上的“确定”后,代码的ELSE部分仍在运行,并且显然已“清除”的相同geoJSON文件仍在下载(包含相同的坐标)

这是我代码中的一个简单错误,还是与传单Draw库有关


谢谢

在您的
其他部分
中,您设置了属性
href
下载
。考虑在<代码>中删除它们,如果部分,或者它们将永远存在,并且自从第一次下载以来,每次新的点击都会触发下载

谢谢,删除属性就行了!非常感谢。