Leaflet.markercluster onclick错误 - 无法在“Node”上执行“appendChild”:参数1不是“Node”类型

dvt*_*tan 2 javascript markerclusterer leaflet

我试图在单击.append地图画布外的某些文本时调用函数。文档中的这个示例似乎有我正在寻找的内容,但我无法成功地将其应用到我的项目中。

我尝试过的代码:

var tiles = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    maxZoom: 18,
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
  }),
  latlng = L.latLng(60, -100);

var map = L.map('map', {center: latlng, zoom: 4, layers: [tiles]});
var progress = document.getElementById('progress');
var progressBar = document.getElementById('progress-bar');

function updateProgressBar(processed, total, elapsed, layersArray) {
  if (elapsed > 1000) {
    progress.style.display = 'block';
    progressBar.style.width = Math.round(processed/total*100) + '%';
  }

  if (processed === total) {
    progress.style.display = 'none';
  }
}

var markers = L.markerClusterGroup({ chunkedLoading: true, chunkProgress: updateProgressBar });
var markerList = [];

function populate() {
  getCoordinates(function (data) {
    for (var i in data) {
      var a = data[i];
      var title = a.id;
      var marker = L.marker(L.latLng(a.lat, a.lng), {title: title});
      marker.bindPopup(title);
      markers.addLayer(marker);
      markerList.push(marker);
    }

    map.addLayer(markers);
  });
}
Run Code Online (Sandbox Code Playgroud)

这是使用 leaflet 1.0 beta 单击标记时 Chrome 控制台出现的错误:

Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
  L.Popup.L.Layer.extend._updateContent @ leaflet-src.js:4462
  L.Popup.L.Layer.extend.update @ leaflet-src.js:4373
  L.Popup.L.Layer.extend.onAdd @ leaflet-src.js:4308
  L.Layer.L.Evented.extend._layerAdd @ leaflet-src.js:2534
  L.Map.L.Evented.extend.whenReady @ leaflet-src.js:2382
  L.Map.include.addLayer @ leaflet-src.js:2558
  L.Map.include.openPopup @ leaflet-src.js:4592
  L.Layer.include.openPopup @ leaflet-src.js:4684
  L.Layer.include._openPopup @ leaflet-src.js:4746
  L.Evented.L.Class.extend.fire @ leaflet-src.js:488
  L.Map.L.Evented.extend._fireDOMEvent @ leaflet-src.js:2363
  L.Map.L.Evented.extend._handleDOMEvent @ leaflet-src.js:2331handler @ leaflet-src.js:6945
Run Code Online (Sandbox Code Playgroud)

iH8*_*iH8 6

该错误是由弹出窗口生成的,与您的点击事件/处理程序无关。单击标记时,弹出窗口会尝试将其内容设置为title未定义的变量。

  • 我给它一个整数,字符串起作用了。当当,简单的错误抱歉哈哈,非常感谢你为我找到了这个!今晚我可以睡得更好了哈哈 (2认同)