-1

我在 Klipfolio 中嵌入了谷歌地图,但是当您刷新页面时,传说中的项目会不时复制自己。 图例重复代码的屏幕截图

正文包括地图画布和图例的 2 个标签

    <div id="map_canvas"></div>
    <div id="legend"></div> 

这就是我根据脚本中的 google maps api 文档填充图例的方式。

// setting the legend
var iconBase = 'https://i.imgur.com/';
var icons = {
    mine_site: {
       name: 'Mine Site',
       icon: iconBase + 'JCSVR5C.png'
    },
    mine_depot: {
       name: 'Mine Depot',
       icon: iconBase + 'XkWP909.png'
    },
    warehouse: {
       name: 'Exporter Warehouse',
       icon: iconBase + 'W7u6wR3.png'
   }
};

var legend = document.getElementById('legend');
for (var key in icons) {
   var type = icons[key];
   var name = type.name;
   var icon = type.icon;
   var div = document.createElement('div');
   div.innerHTML = '<img src="' + icon + '"> ' + name;
   legend.appendChild(div);
}

map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(legend);

我什至使用计数器将图例附加到图例的次数,但次数等于图例项的长度,但无济于事。

我想知道这是否可能不是由于与 klipfolio 的某些兼容性。有没有人遇到过这个问题?有什么我做错了吗?或者我怎么能确定这是因为兼容性问题?同时,当这些重复发生时,我没有收到任何警告或错误。

4

1 回答 1

0

对于遇到此错误的其他人,我通过解决方法解决了这个问题。只需使用它们的 css 类删除重复的值。一个例子可以在这里找到。

<html>
<div class = "test">Window</div>
<div class = "test">Table</div>
<div class = "test">Chaise</div>
<div class = "test">Window</div>
<div class = "test">Chaise</div>
</html>
<script>
$('.test').each(function () {
  $('.test:contains("' + $(this).text() + '"):gt(0)').remove();  
});
</script>

请参阅我之前关于 js 在从正文加载时重复的评论。

于 2018-01-31T07:29:40.483 回答